DataGridView获取实际订单

时间:2009-07-16 10:36:23

标签: c# winforms datagridview

HI,我有一个带有此设置的DataGridView:d

dataGridView1.AllowUserToOrderColumns = true;

(因此用户可以重新排序列)

我的问题是我想知道列的当前顺序。 我做过这个方法:

public List<int> getActualTaskOrder() {
            List<int> ris = new List<int>();
            int i=1;  
            while(i<this.dataGridView1.Columns.Count){
                DataGridViewColumn c= this.dataGridView1.Columns[i];

                if (c.Name != "**")
                {
                    Console.WriteLine(c.HeaderText);

                    ris.Insert(c.Index-1, System.Convert.ToInt32(c.Tag));
                }
                i++;
            }
            return ris;
        }

我的问题是结果(列的顺序)总是一样的(如果我在我的gui中移动列的话)

1 个答案:

答案 0 :(得分:1)

您需要查看列的DisplayIndex;也许是这样的:

        var qry = from DataGridViewColumn col in grid.Columns
                  where col.Name != "**"
                  orderby col.DisplayIndex
                  select col.HeaderText;
        foreach (string txt in qry) {
            Console.WriteLine(txt);
        }