我有一个DataGridView
可以让用户对其列进行重新排序,我需要获取的是每列的当前顺序索引,但是在移动列之前和之后迭代它们会显示相同的顺序它看起来好像索引永远不会改变:
for (int i = 0; i < dsgDataGrid.Columns.Count; i++)
{
MessageBox.Show(dsgDataGrid.Columns[i].Name);
}
是否有可以使用的属性显示列的当前顺序?
答案 0 :(得分:2)
是否有可以使用的属性显示列的当前顺序?
当然有 - DataGridViewColumn.DisplayIndex
与Index属性不同,DisplayIndex属性对应于用户界面(UI)显示的列的当前位置。默认情况下,每列的DisplayIndex设置为递增顺序的数字,这反映了它们的添加顺序。 Visible属性值不会影响DisplayIndex值。要根据列的可见性或其他状态确定列的显示位置,请使用DataGridViewColumnCollection类的GetFirstColumn,GetLastColumn或GetNextColumn方法。
控件中的每一列都有一个唯一的DisplayIndex值。值以0开头,按数字顺序继续,不跳过任何值。更改列的DisplayIndex值时,其他列的DisplayIndex值将更改为反映新订单。