2009-07-16 8 views
1

HALLO, ich habe eine Datagridview mit dieser Einstellung: dDatagridview tatsächliche Bestellung erhalten

dataGridView1.AllowUserToOrderColumns = true;

(so dass die Benutzer Spalten neu anordnen können)

Mein Problem ist, dass ich die aktuelle Reihenfolge der Spalten wissen will. Ich habe diese methond getan:

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

mein Problem ist, dass das Ergebnis (die Reihenfolge der Spalten) ist immer das gleiche (auch wenn ich Spalten in meiner gui bewegen)

Antwort

1

Sie benötigen, zu betrachten die DisplayIndex Ihrer Spalten; vielleicht etwas wie:

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