2015-11-12 59 views
0

我有一个Datagrid,我以编程方式填充。我需要从单元格中检查颜色,但总是得到“{Name = 0,ARGB =(0,0,0,0)}”。 我的代码检查颜色:在DatagridView中检查颜色

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

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

回答

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值

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)