首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中重新排列列

在C#中重新排列列
EN

Stack Overflow用户
提问于 2010-05-27 01:06:24
回答 3查看 2K关注 0票数 2

如何在C#中将重新排列的列从datagridview中取出?我需要按顺序显示当前显示的所有列。我可以通过设置datagridview.AutoGenerateColumns=false来获得默认的列顺序,但即使在重新排列了表中的列之后,我也会获得相同的旧顺序。

编辑:基本上,我需要的是能够迭代通过所有列的数据,基于他们的显示索引

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-05-27 01:11:04

使用DataGridView列的DisplayIndex property

DisplayIndex属性:

获取或设置列相对于当前显示列的显示顺序。

编辑:

它很丑陋,我相信人们会一笑置之,但这可能会让你对一个实现有一个粗略的想法来改进。

创建一个包含三列的DGV并设置它们的DisplayName属性,如下所示:

代码语言:javascript
复制
    dataGridView1.Columns[0].DisplayIndex = 1;
    dataGridView1.Columns[1].DisplayIndex = 2;
    dataGridView1.Columns[2].DisplayIndex = 0;

添加以下代码以循环访问DGV中的所有列,并按其DisplayIndex顺序访问这些列:

代码语言:javascript
复制
    for (int index = 0; index < dataGridView1.Columns.Count; index++) {
        foreach (DataGridViewColumn c in dataGridView1.Columns) {
            if (c.DisplayIndex == index) {
                // You've got your next column.
                Console.WriteLine(c.Name);
            }
        }
    }
票数 3
EN

Stack Overflow用户

发布于 2010-05-27 01:07:42

你是如何选择的?选择*?您需要按所需的顺序指定列。

票数 0
EN

Stack Overflow用户

发布于 2010-05-27 01:09:10

您是否在网格的ItemTemplate部分重新排列了它们的顺序?您还可以通过GridView的上下文菜单更改顺序。或者,您可以更改SQL语句,并确保关闭自动生成

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2915170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档