如果行单元格值是相同的gridview devexpress winforms c#,则上下移动行或更改行颜色?

时间:2015-05-29 21:00:15

标签: c# winforms grid devexpress

我已经可以上下移动行但我需要让它向上移动和放大如果向上行的值与向下行相同并且如果所有行都是相同的值它会改变颜色我努力并且搜索了很多但是没有找到解决方案请帮助我。

我使用以下代码向上移动&向下

    void uphaya()
    {
        DevExpress.XtraGrid.Views.Grid.GridView view = GVHaya;
        view.GridControl.Focus();
        int index = view.FocusedRowHandle;
        if (index <= 0) return;

        DataRow row1 = view.GetDataRow(index);
        DataRow row2 = view.GetDataRow(index - 1);
        object val1 = row1[OrderFieldName];
        object val2 = row2[OrderFieldName];
        row1[OrderFieldName] = val2;
        row2[OrderFieldName] = val1;

        view.FocusedRowHandle = index - 1;
    }

    void downhaya()
    {
        DevExpress.XtraGrid.Views.Grid.GridView view = GVHaya;
        view.GridControl.Focus();
        int index = view.FocusedRowHandle;
        if (index >= view.DataRowCount - 1) return;

        DataRow row1 = view.GetDataRow(index);
        DataRow row2 = view.GetDataRow(index + 1);
        object val1 = row1[OrderFieldName];
        object val2 = row2[OrderFieldName];
        row1[OrderFieldName] = val2;
        row2[OrderFieldName] = val1;

        view.FocusedRowHandle = index + 1;
    }

我有专栏名称&#34;类别&#34;我需要查看下行中是否相同,将行向下移动并再次检查是否向下移动等等,如果它不能移动则更改行颜色

我试图使用的这段代码,但它不起作用

  for (int i = 0; i < GVHaya.RowCount; i++)
 if ((((GVHaya.GetRowCellValue(i, "Category").ToString()) == (GVHaya.GetRowCellValue(i -1, "Category").ToString())))) 
          {
              downhaya()
          }

1 个答案:

答案 0 :(得分:0)

要更改行的颜色,请订阅网格视图的事件RowCellStyle。

private void view_RowStyle(object sender, RowCellStyleEventArgs e)
{
     e.Appearance.BackColor =  Color.Red;
}

更多信息here