我想突出显示我的新网格控制记录.(DevExpress Winforms)



这是我现在正在做的事情。

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 秒的大交叉。如果我在当前表单之后打开其他表单,它还会在其他表单中显示交叉。看起来很丑。

想要一个解决方案来删除这个十字或其他解决方案,通过它我可以通过匹配列值来更改新行的外观,而无需交叉显示。

帮助将不胜感激。

红叉表示绘制网格时发生异常。由于您要更改数据源,因此最好在加载数据之前延迟突出显示。像这样:

private void LoadData() {
  myGridView.BeginDataUpdate();
  myGridControl.DataSource = GetNewDataSource();
  myGridView.EndDataUpdate();
}

最新更新