2016-01-08 75 views
1

我有一个DataGridView可以让用户重新排列其列,我需要获取的是每列的当前顺序索引,但是在移动列之前和之后遍历它们显示相同的顺序所以看起来好像指数永远不会改变:DataGridView获取当前颜色索引

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

有没有财产,我可以用它显示的列目前的订单?

谢谢。

回答

2

是否有一个属性,我可以使用它显示列的当前顺序?

肯定有 - DataGridViewColumn.DisplayIndex

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

控件中的每一列都有唯一的DisplayIndex值。值从0开始,按数字顺序继续而不跳过任何值。当您更改列的DisplayIndex值时,其他列的DisplayIndex值会更改以反映新订单。