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

编辑:基本上我需要的是能够根据其显示索引遍历datagridview的所有列

谢谢

最佳答案

使用您的DataGridView列的DisplayIndex property

DisplayIndex属性:


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


编辑:
这很丑陋,我敢肯定人们会笑着说,但这可能会给您一个粗略的想法,以改进它。

创建具有三列的DGV并按如下所示设置其DisplayName属性:

    dataGridView1.Columns[0].DisplayIndex = 1;
    dataGridView1.Columns[1].DisplayIndex = 2;
    dataGridView1.Columns[2].DisplayIndex = 0;


添加以下代码以遍历所有列,以其DisplayIndex顺序访问DGV中的列:

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

关于c# - 在C#中重新排列列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2915170/

10-08 20:40