C# DataGridView获取当前列索引

C# DataGridView获取当前列索引,c#,winforms,datagridview,datatable,C#,Winforms,Datagridview,Datatable,我有一个DataGridView,可以让用户对其列重新排序,我需要获得的是每个列的当前顺序索引,但在移动列之前和之后对它们进行迭代显示相同的顺序,因此看起来索引似乎从未更改: for (int i = 0; i < dsgDataGrid.Columns.Count; i++) { MessageBox.Show(dsgDataGrid.Columns[i].Name); } for(int i=0;i

我有一个
DataGridView
,可以让用户对其列重新排序,我需要获得的是每个列的当前顺序索引,但在移动列之前和之后对它们进行迭代显示相同的顺序,因此看起来索引似乎从未更改:

for (int i = 0; i < dsgDataGrid.Columns.Count; i++)
{
    MessageBox.Show(dsgDataGrid.Columns[i].Name);
}
for(int i=0;i
是否有一个属性可以显示列的当前顺序

是否有一个属性可以显示列的当前顺序

当然有-

与Index属性不同,DisplayIndex属性对应于用户界面(UI)显示的列的当前位置。默认情况下,每列的DisplayIndex设置为递增顺序的数字,这反映了它们的添加顺序。Visible属性值不影响DisplayIndex值。要根据列的可见性或其他状态确定列的显示位置,请使用DataGridViewColumnCollection类的GetFirstColumn、GetLastColumn或GetNextColumn方法

控件中的每一列都有一个唯一的DisplayIndex值。这些值以0开头,按数字顺序进行,不跳过任何值。更改列的DisplayIndex值时,其他列的DisplayIndex值将更改以反映新的顺序