如何屏蔽 datagridview 中的特定列?
How to you mask a specific column in datagridview?
ProductPrice Stocks Category
12.0 0 Drinks
50.0 0 Drinks
30.0 0 Drinks
45.0 12 Food
50.0 10 Food
60.0 15 Food
这是我的数据网格 table。
我想把 0 改成 n/a.
但问题是 Stocks 数据类型在数据库中设置为整数。
是否有任何功能可以屏蔽特定列,例如将 0 更改为 n/a?
我找到了一些“几乎”的解决方案,但它将整个列更改为 n/a,而不是 0。
我也尝试过将列值更改为 = n/a 但错误总是说无法将 int 转换为字符串。
谁能帮帮我?
我刚刚在未绑定的 DataGridView
中对此进行了测试,它按预期工作:
Private Sub DataGridView1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If e.ColumnIndex = 1 Then
If TypeOf e.Value Is String AndAlso CStr(e.Value) = "0" Then
e.Value = "N/A"
e.FormattingApplied = True
End If
End If
End Sub
请注意,该代码首先测试列索引,并且仅当正在格式化的单元格位于感兴趣的特定列中时才会继续。如果您不这样做,那么每列中的单元格当然都会受到影响。您需要过滤所需列的索引。如果 Stocks
是第二列,那么索引将为 1,就像在我的示例中一样。如果不是,则需要更改它。
此代码查找 String
值,因为输入未绑定网格的所有内容都是 String
。如果您已将网格绑定到实际包含数字的数据源,那么您应该寻找合适的数字类型。在这种情况下,这大概是 Integer
,所以你会想要这样的东西:
If TypeOf e.Value Is Integer AndAlso CInt(e.Value) = 0 Then
ProductPrice Stocks Category
12.0 0 Drinks
50.0 0 Drinks
30.0 0 Drinks
45.0 12 Food
50.0 10 Food
60.0 15 Food
这是我的数据网格 table。 我想把 0 改成 n/a.
但问题是 Stocks 数据类型在数据库中设置为整数。 是否有任何功能可以屏蔽特定列,例如将 0 更改为 n/a?
我找到了一些“几乎”的解决方案,但它将整个列更改为 n/a,而不是 0。 我也尝试过将列值更改为 = n/a 但错误总是说无法将 int 转换为字符串。
谁能帮帮我?
我刚刚在未绑定的 DataGridView
中对此进行了测试,它按预期工作:
Private Sub DataGridView1_CellFormatting(sender As Object, e As DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
If e.ColumnIndex = 1 Then
If TypeOf e.Value Is String AndAlso CStr(e.Value) = "0" Then
e.Value = "N/A"
e.FormattingApplied = True
End If
End If
End Sub
请注意,该代码首先测试列索引,并且仅当正在格式化的单元格位于感兴趣的特定列中时才会继续。如果您不这样做,那么每列中的单元格当然都会受到影响。您需要过滤所需列的索引。如果 Stocks
是第二列,那么索引将为 1,就像在我的示例中一样。如果不是,则需要更改它。
此代码查找 String
值,因为输入未绑定网格的所有内容都是 String
。如果您已将网格绑定到实际包含数字的数据源,那么您应该寻找合适的数字类型。在这种情况下,这大概是 Integer
,所以你会想要这样的东西:
If TypeOf e.Value Is Integer AndAlso CInt(e.Value) = 0 Then