【Devexpress】Gridcontorl的列隐藏后再显示位置发生了变化

首先在可视化界面中排序好每个列的显示位置索引

在窗口初始化时进行记录在字段中

  /// <summary>
        /// 当前显示列的位置索引,用于隐藏后显示进行重新排序位置
        /// </summary>
        Dictionary<DevExpress.XtraGrid.Columns.GridColumn, int> ColumnsVisIndex = new Dictionary<DevExpress.XtraGrid.Columns.GridColumn, int>();
 public F_Shipments()
        {
            InitializeComponent();
             for (int i = 0; i < gridView1.Columns.Count; i++)
            {
                ColumnsVisIndex.Add(gridView1.Columns[i], gridView1.Columns[i].VisibleIndex);
            }
         }

每次隐藏或者显示后。根据最初记录的顺序来重新进行排列就可以

 //进行列排序因为隐藏的列重新显示会打乱排序
            foreach (var item in ColumnsVisIndex)
            {
                if (item.Key.Visible)
                    item.Key.VisibleIndex = item.Value;
            }

上一篇:DevExpress GridView获取选中行某列的值


下一篇:玩转DevExpress.XtraGrid.view.gridview