我希望突出显示我的新Gridcontrol记录。 (devexpress winforms)

时间:2015-01-23 07:29:32

标签: devexpress-windows-ui

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

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秒。如果我在当前形式之后打开其他形式,它也会以其他形式显示交叉形式。看起来很简单。

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

将不胜感激。

1 个答案:

答案 0 :(得分:0)

红叉表示绘制网格时发生异常。由于您正在更改数据源,因此在加载数据之前进行高亮显示是个好主意。 像这样:

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