检查DatagridView中的颜色

时间:2015-11-12 08:45:08

标签: vb.net datagridview

我有一个以编程方式填充的Datagrid。我需要检查单元格中的颜色,但始终得到" {Name = 0,ARGB =(0,0,0,0)}"。 我的代码检查颜色:

Dim backColor As Color = DataGridViewMoney.Item(DataGridViewMoney.Rows.Count - 1, 0).Style.BackColor

如何解决这个问题? 感谢。

2 个答案:

答案 0 :(得分:0)

更改Item(DataGridViewMoney.Rows.Count - 1, 0)
如果你想获得第一列(单元格),请Item(0,DataGridViewMoney.Rows.Count - 1)

试试这段代码:

Dim backColor As Color = DataGridViewMoney.Item(0, DataGridViewMoney.Rows.Count - 1).InheritedStyle.BackColor

然后你可以得到:

backColor.ToKnownColor.ToString - 颜色名称(如果已知)或零
backColor.IsKnownColor - 如果已知颜色,则为布尔值
backColor.Name - 名称或十六进制值
backColor.ToString - “颜色[名称]”或ARGB值

答案 1 :(得分:0)

您的代码存在问题:DataGridView.Item属性参数按此顺序为columnIndexrowIndex

另请注意,Empty颜色({Name=0, ARGB=(0, 0, 0, 0)})是DataGridViewTextBoxCell的标准颜色,因此此结果可能是正确的。

您可以使用此代码验证其是否有效:

'set a backcolor different from Empty
DataGridViewMoney.Item(0, DataGridViewMoney.Rows.Count - 1).Style.BackColor = Color.Aquamarine

'check backcolor
MsgBox(DataGridViewMoney.Item(0, DataGridViewMoney.Rows.Count - 1).Style.BackColor.ToString)