你好,斯塔克的人们,
我正在构建一个图形用户界面,在这个图形用户界面中,我有一个显示数据库中数据的DataGridView。然而,我正在寻找一种方法,当一行的第一列包含字符串“Aborted”时,将整行的颜色更改为红色。
我已经尝试找到一个解决方案,但所有的例子都是整数而不是字符串的条件。
这是我当前的着色代码:
private void datagridview1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 1 && e.Value as string == "Aborted")
{
var style = datagridview1.Rows[e.RowIndex].DefaultCellStyle;
style.BackColor = Color.Red;
style.ForeColor = Color.White;
}
}
但是,这不会更改包含值Aborted的列或整行的颜色,甚至也不会给予错误消息...
即使在CellFormatting
旁边的datagridview1
的事件属性中,它也显示datagridview1_CellFormatting
,因此它肯定绑定到datagridview。
屏幕截图Events Properties of the datagridview1
数据网格视图的屏幕截图enter image description here
有没有人有办法解决这个问题?我完全不知道出了什么问题。
编辑:错误Error of @Jimi's example的快速屏幕截图
2条答案
按热度按时间sy5wg1nm1#
您正在操作错误的样式对象。请尝试以下操作:
ih99xse12#
奥利弗的解决方案非常适用于只为“Aborted”列着色的情况,但是为整行着色的解决方案如下(非常感谢Reddit的u/JTarsier)
谢谢你的帮助!