DataGridView 单元格表示值的自定义

通过 CellFormatting 事件,可以自定义单元格的表示值。(比如:值为 Error 的时候,单元格被设定为红色)
下面的示例:将 “Colmn1” 列的值改为大写。
[VB.NET]
'CellFormatting  事件处理方法
Private   Sub  DataGridView1_CellFormatting( ByVal  sender  As   Object , _
        
ByVal  e  As  DataGridViewCellFormattingEventArgs) _
        
Handles  DataGridView1.CellFormatting
    
Dim  dgv  As  DataGridView =  CType (sender, DataGridView)

    
如果单元格是 “Column1” 列的单元格
     If  dgv.Columns(e.ColumnIndex).Name = "Column1"  AndAlso  _
            
TypeOf  e.Value  Is   String   Then
        
将单元格值改为大写
         Dim   str   As   String  = e.Value.ToString()
        e.Value = 
str .ToUpper()
        
应用该 Format Format 完毕。
        e.FormattingApplied =  True
    
End   If
End Sub
 
[C#]
//CellFormatting 事件处理方法
private   void  DataGridView1_CellFormatting( object  sender,
    DataGridViewCellFormattingEventArgs e)
{
    DataGridView dgv = (DataGridView)sender;

    
// 如果单元格是 “Column1” 列的单元格
     if  (dgv.Columns[e.ColumnIndex].Name == "Column1" && e.Value  is   string )
    {
        
// 将单元格值改为大写
         string  str = e.Value.ToString();
        e.Value = str.ToUpper();
        
// 应用该 Format Format 完毕。
        e.FormattingApplied =  true ;
    }
}

CellFormatting
事件的 DataGridViewCellFormattingEventArgs 对象的 Value 属性一开始保存着未被格式化的值。当 Value 属性被设定表示用的文本之后,把 FormattingApplied 属性做为 True ,告知 DataGridView 文本已经格式化完毕。如果不这样做的话, DataGridView 会根据已经设定的 Format NullValue DataSourceNullValue FormatProvider 属性会将 Value 属性会被重新格式化一遍。

你可能感兴趣的:(职场,datagridview,休闲,单元格表示值的自定义)