2014-09-18 4 views
0

Мне нужно отобразить ячейку в C1FlexGird в формате валюты, поэтому я пытаюсь создать стиль с валютным форматом и применить стиль после присвоения значения ячейке. Значение ячейки не включает форматирование при загрузке. Спасибо за любую помощь!Как создать конкретную ячейку в C1FlexGird?

'Create Currency Style 
Dim cs As C1.Win.C1FlexGrid.CellStyle 
cs.DataType = GetType(String) 
cs.Format = "c2" 

'Set the value 
fg(iRow, 1) = value 

'Apply style to cell 
rg = fg.GetCellRange(iRow, 1) 
rg.Style = cs 
+0

Я могу установить стиль в OwnerDrawCell случае применить стиль только для определенных клеток. Но у меня проблема с применением валютного формата. какова должна быть строка формата для Cell Style? Благодаря! – Jyina

+0

попробуйте использовать «{0: $ #, ## 0}» в качестве формата валюты –

ответ

1

ComponentOne FlexGrid for WinForms облегчает пользователям вводить валютные значения в столбцах сетки. Эта функция отображается с помощью свойства Format объекта Column в C1FlexGrid. С помощью этого свойства можно изменить формат любого столбца целочисленного типа для представления валют. Видно, что формат валюты зависит от текущей настройки локали. Таким образом, для сценариев, где валюты для одного и того же языка должны отображаться, это свойство используется.

' Currency. 
_flex.Cols(2).Format = "c" 

Однако существует множество случаев использования различных валют в одной сетке. Используя OwnerDrawCell, вам нужно передать строку Format для ячейки/column/row, и вы избежите этого «ограничения». Пожалуйста, обратитесь к следующему сниппета, который выполняет это:

Private Sub _flex_OwnerDrawCell(sender As System.Object, e As OwnerDrawCellEventArgs) Handles _flex.OwnerDrawCell 
Select Case _flex.Cols(e.Col).Name 
    Case "Pound" 
     Try 
      Dim i As Integer = CInt(Me._flex(e.Row, e.Col)) 
      e.Text = String.Format("{0:£#,##0}", i) 
     Catch 
     End Try 
    Exit Select 

    Case "Dollar" 
     Try 
      Dim i As Integer = CInt(Me._flex(e.Row, e.Col)) 
      e.Text = String.Format("{0:$#,##0}", i) 
     Catch 
     End Try 
    Exit Select 

    Case "Euro" 
     Try 
      Dim i As Integer = CInt(Me._flex(e.Row, e.Col)) 
      e.Text = String.Format("{0:€#,##0}", i) 
     Catch 
     End Try 
    Exit Select 

    Case "Yen/Yuan" 
     Try 
      Dim i As Integer = CInt(Me._flex(e.Row, e.Col)) 
      e.Text = String.Format("{0:¥#,##0}", i) 
     Catch 
     End Try 
    Exit Select 

    Case "Won" 
     Try 
      Dim i As Integer = CInt(Me._flex(e.Row, e.Col)) 
      e.Text = String.Format("{0:?#,##0}", i) 
     Catch 
     End Try 
    Exit Select 

    Case Else 
    Exit Select 

End Select 
End Sub 

Найти образец здесь: http://our.componentone.com/wp-content/uploads/2014/09/FlexGridCurrencyVB.zip

+0

Спасибо. Формат работает сейчас. – Jyina

+0

Рад помочь :) –

Смежные вопросы