使用此代码在加载数据时绘制datagrid单元格以获取特殊记录。
foreach (DataColumn item in dt.Columns)
{
FormattableTextBoxColumn tbcName = new FormattableTextBoxColumn();
if (item.ColumnName == "S")
{
tbcName.Width = 40;
tbcName.MappingName = item.ColumnName;
tbcName.HeaderText = item.ColumnName;
tbcName.SetCellFormat += new FormatCellEventHandler(ColumnSetCellFormat);
}
tableStyle.GridColumnStyles.Add(tbcName);
}
datagrid.TableStyles.Add(tableStyle);
然后使用以下代码突出显示单元格:
SolidBrush highlightBrush = new SolidBrush(Color.Yellow);
private void ColumnSetCellFormat(object sender, DataGridFormatCellEventArgs e)
{
//Highlight color
if (datagrid[e.Row, 0].ToString() == "M")
{
e.BackBrush = highlightBrush;
}
}
现在问题是当我选择一行时,该行将突出显示蓝色。 但如果我选择涂有黄色的行,则表示蓝色不显示,黄色仍然存在,差异是字体颜色从黑色变为白色。
如果基色为黄色,如何更改选择行也会变为蓝色?