【问题标题】:DataGridView get current column indexDataGridView 获取当前列索引
【发布时间】:2016-01-08 15:40:45
【问题描述】:
我有一个DataGridView,它的列可以由用户重新排序,我需要获取的是每列的当前顺序索引,但是在移动列之前和之后迭代它们会显示相同的顺序,所以看起来好像索引永远不会改变:
for (int i = 0; i < dsgDataGrid.Columns.Count; i++)
{
MessageBox.Show(dsgDataGrid.Columns[i].Name);
}
我可以使用一个属性来显示列的当前顺序吗?
【问题讨论】:
标签:
c#
winforms
datagridview
datatable
【解决方案1】:
是否有我可以使用的属性来显示列的当前顺序?
当然有 - DataGridViewColumn.DisplayIndex
与 Index 属性不同,DisplayIndex 属性对应于用户界面 (UI) 显示的列的当前位置。默认情况下,每列的 DisplayIndex 设置为递增顺序的数字,这反映了添加它们的顺序。 Visible 属性值不影响 DisplayIndex 值。要根据列的可见性或其他状态确定列的显示位置,请使用 DataGridViewColumnCollection 类的 GetFirstColumn、GetLastColumn 或 GetNextColumn 方法。
控件中的每一列都有一个唯一的 DisplayIndex 值。这些值从 0 开始并按数字顺序进行,而不会跳过任何值。当您更改某个列的 DisplayIndex 值时,其他列的 DisplayIndex 值也会更改以反映新的顺序。