这就是我现在正在做的事情。
private void gvOrderList_RowStyle(object sender, RowStyleEventArgs e)
{
GridView View = sender as GridView;
if (e.RowHandle >= 0)
{
string sGridRecordOrderNumber = View.GetRowCellDisplayText(e.RowHandle, View.Columns["orderNo"]);
foreach (string sNewRecordOrderNo in oNewRecordOrderNoList)
{
if (sGridRecordOrderNumber == sNewRecordOrderNo)
{
e.Appearance.BackColor = Color.Salmon;
e.Appearance.BackColor2 = Color.SeaShell;
break;
}
}
}
}
我使用线程每30秒触发一次sql查询,并将数据源作为列表提供。 oNewRecordOrderNoList包含我的新记录列表。我正在使用句柄的相同列匹配它的OrderNo列以获得突出显示的行。
我正在按预期突出显示我的行,但也在我的网格控制上获得了一个大爆炸,持续1秒。如果我在当前形式之后打开其他形式,它也会以其他形式显示交叉形式。看起来很简单。
我想要一个解决方案来删除这个交叉或其他解决方案,我可以通过匹配列值而不用交叉显示来更改新行的外观。
将不胜感激。
答案 0 :(得分:0)
红叉表示绘制网格时发生异常。由于您正在更改数据源,因此在加载数据之前进行高亮显示是个好主意。 像这样:
private void LoadData() {
myGridView.BeginDataUpdate();
myGridControl.DataSource = GetNewDataSource();
myGridView.EndDataUpdate();
}