C# Winform DataGridView的列顺序,在运行时/数据源绑定后被改变的问题

如题:
C# Winform  DataGridView的列顺序,在运行时/数据源绑定后被改变的问题,这个问题对于需要控制列顺序的人来说,如果找不到原因,你就会发现一直都控制不了列的顺序。

当然,你可能也有事件处理程序或者其它代码编程导致主动改变了列顺序,甚至你可能设置了独特的样式和主题导致的,但这种不是我们考虑的范围。

我们要讲的是针对数据绑定影响了列的顺序的这个原因,没有人为去控制列顺序的程序下,数据源绑定后列就自动被改变了。

这个问题的处理,需要用到列的DisplayIndex属性,该属性可以设定顺序。


分隔一下,你以为设置了DisplayIndex属性,DataGridView的列,就会乖乖的听你的话顺序排列了?!
不,很多人发现数据源绑定后还是变了,那是因为DisplayIndex的代码位置没有放在正确的位置。

                    DataGridView.Columns["IdColumn"].DisplayIndex = 0;                      //ID
                    DataGridView.Columns["RowNumColumn"].DisplayIndex = 1;                  //序号
                    DataGridView.Columns["RecordTypeColumn"].DisplayIndex = 2;              //类型
                    DataGridView.Columns["SummaryColumn"].DisplayIndex = 3;                 //描述
                    DataGridView.Columns["DataColumn"].DisplayIndex = 4;                    //传输数据
                    DataGridView.Columns["HandleStatusColumn"].DisplayIndex = 5;            //处理结果
                    DataGridView.Columns["ErrorMessageColumn"].DisplayIndex = 6;            //错误信息
                    DataGridView.Columns["DurationColumn"].DisplayIndex = 7;                //请求耗时
                    DataGridView.Columns["CreationTimeColumn"].DisplayIndex = 8;            //创建时间
                    DataGridView.Columns["ReceiveDataColumn"].DisplayIndex = 9;             //ReceiveData
                    DataGridView.Columns["StartTimeColumn"].DisplayIndex = 10;              //StartTime
                    DataGridView.Columns["EndTimeColumn"].DisplayIndex = 11;                //EndTime

比如上面的控制列顺序的代码,你想放哪里?放在OnLoad(EventArgs e)中? 那你就不会有效果,问题解决不了。

                    DataGridView.DataSource = records;

                    #region 列顺序排序

                    DataGridView.Columns["IdColumn"].DisplayIndex = 0;                      //ID
                    DataGridView.Columns["RowNumColumn"].DisplayIndex = 1;                  //序号
                    DataGridView.Columns["RecordTypeColumn"].DisplayIndex = 2;              //类型
                    DataGridView.Columns["SummaryColumn"].DisplayIndex = 3;                 //描述
                    DataGridView.Columns["DataColumn"].DisplayIndex = 4;                    //传输数据
                    DataGridView.Columns["HandleStatusColumn"].DisplayIndex = 5;            //处理结果
                    DataGridView.Columns["ErrorMessageColumn"].DisplayIndex = 6;            //错误信息
                    DataGridView.Columns["DurationColumn"].DisplayIndex = 7;                //请求耗时
                    DataGridView.Columns["CreationTimeColumn"].DisplayIndex = 8;            //创建时间
                    DataGridView.Columns["ReceiveDataColumn"].DisplayIndex = 9;             //ReceiveData
                    DataGridView.Columns["StartTimeColumn"].DisplayIndex = 10;              //StartTime
                    DataGridView.Columns["EndTimeColumn"].DisplayIndex = 11;                //EndTime

                    #endregion

上面的DisplayIndex顺序控制列表,要放在DataGridView.DataSource = datasource;之后,才能解决掉列顺序错乱的问题。

祝您用餐愉快。

相关推荐

  1. 如果reactive数据没有双向

    2024-04-20 23:42:01       34 阅读
  2. Vue双向数据原理

    2024-04-20 23:42:01       45 阅读
  3. C# winform双向数据

    2024-04-20 23:42:01       19 阅读
  4. 手动实现 Vue 3简易双向数据(模仿码)

    2024-04-20 23:42:01       39 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-20 23:42:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-20 23:42:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-20 23:42:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-20 23:42:01       20 阅读

热门阅读

  1. 【数学建模】钻井问题

    2024-04-20 23:42:01       12 阅读
  2. WPS二次开发专题:WPS SDK事件回调

    2024-04-20 23:42:01       14 阅读
  3. 安阳旅游地图规划(未完成)

    2024-04-20 23:42:01       12 阅读
  4. React-hooks:useReducer

    2024-04-20 23:42:01       15 阅读
  5. el-table 遇到的问题一

    2024-04-20 23:42:01       13 阅读
  6. 使用JWT、Redis + token实现用户登录的两种方式。

    2024-04-20 23:42:01       14 阅读
  7. Android 13 有线以太网静态ip保存逻辑梳理分析

    2024-04-20 23:42:01       14 阅读
  8. 使用Python实现超参数调优

    2024-04-20 23:42:01       14 阅读
  9. Swift知识点 --- AnyView

    2024-04-20 23:42:01       12 阅读
  10. hyref 开发者推荐项目

    2024-04-20 23:42:01       14 阅读
  11. React Flow浏览器默认事件失效问题解决

    2024-04-20 23:42:01       15 阅读