2012-03-12 47 views
0

私のプロジェクトでvb.netを使用しています。私は10進値でPrice_Changeと呼ばれる列を持つdatatable m_tableにバインドされたdatagridviewを持っています。価格変更が0より大きい場合は、datagridviewにテキストを緑で表示し、それ以外の場合は赤で表示します。私は単純に次の書式を使用することはできません。なぜなら、束縛されたデータテーブルm_tableは、データベースから直接ではなく、自分のコードで構築されるからです。vb.net、データテーブルで異なるテキストの色を設定する方法

DataGridView.Rows(0)Cells(0).Style.ForeColor=COLOR.BLACK 

コードはcellformattingイベントは、この目的のために使用することができるかしら

Dim rowText As DataRow = m_table.NewRow 
rowText("Price Change")=10.00 'assign values to price change column 

' there is no color formating for data table 

のように見えます。それはdatagridviewの負荷を遅くするだろうか?ここには[リンク]があります。 http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridview.cellformatting.aspx

答えて

0
Private Sub DGVTable_CellFormatting(sender As Object, e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DGVTable.CellFormatting 
    If Me.DGVTable.Columns(e.ColumnIndex).Name = columnPriceChange Then 
     If e.Value IsNot Nothing Then 
      Dim change As Decimal = CType(e.Value, Decimal) 
      If change >= 0 Then 
       e.CellStyle.ForeColor = Color.Green 
      Else 
       e.CellStyle.ForeColor = Color.Red 
      End If 
     End If 
    End If 
End Sub 
関連する問題