2009-07-16 60 views
1

HI,我已经使用此设置一个DataGridView:dDataGridView中获得实际订单

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

你需要看看您列中的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); 
     }