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

本文关键字:devexpress winforms gridview 单元格 移动 颜色 如果 上下 | 更新日期: 2023-09-27 17:51:07

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

我使用了下面的代码来上移&

    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;
    }

我有一个列名"Category",我需要看看它在下行中是否相同将行向下移动并再次检查是否相同向下移动等等,如果它不能移动它改变行颜色

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

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

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

要更改行颜色,请订阅Grid View的RowCellStyle事件。

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