DataGridView获取当前列索引

本文关键字:索引 获取 DataGridView | 更新日期: 2023-09-27 18:29:34

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

for (int i = 0; i < dsgDataGrid.Columns.Count; i++)
{
    MessageBox.Show(dsgDataGrid.Columns[i].Name);
}

有没有一个属性可以显示列的当前顺序?

DataGridView获取当前列索引

有没有一个属性可以显示列的当前顺序?

当然有-DataGridViewColumn.DisplayIndex

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

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