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
Я могу установить стиль в OwnerDrawCell случае применить стиль только для определенных клеток. Но у меня проблема с применением валютного формата. какова должна быть строка формата для Cell Style? Благодаря! – Jyina
попробуйте использовать «{0: $ #, ## 0}» в качестве формата валюты –