我有一个Datagrid,我以编程方式填充。我需要从单元格中检查颜色,但总是得到“{Name = 0,ARGB =(0,0,0,0)}”。 我的代码检查颜色:在DatagridView中检查颜色
Dim backColor As Color = DataGridViewMoney.Item(DataGridViewMoney.Rows.Count - 1, 0).Style.BackColor
如何解决这个问题? 谢谢。
我有一个Datagrid,我以编程方式填充。我需要从单元格中检查颜色,但总是得到“{Name = 0,ARGB =(0,0,0,0)}”。 我的代码检查颜色:在DatagridView中检查颜色
Dim backColor As Color = DataGridViewMoney.Item(DataGridViewMoney.Rows.Count - 1, 0).Style.BackColor
如何解决这个问题? 谢谢。
更改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值
代码有问题:DataGridView.Item属性参数为columnIndex
和rowIndex
,按此顺序排列。
请注意,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)