2016-10-21 74 views
0

我正在导入一些Excel工作表到DataGridView。我需要导入,重新排序我的项目中的列,然后获取新的索引。我试过DataGridViewColumn.Index,DataGridViewColumn.DisplayIndex,Refresh(),但索引从不改变。如何在DataGridView中重新排列列的机会列索引?

请问我该怎么做?

谢谢。

+0

您是否无法在dataGridView中获取新记录?即不刷新dataGridView。 – user2960398

+0

不,我不能添加或删除dgv行,只对其重新排序。 –

+0

添加或删除事件不起作用? – user2960398

回答

0

DataGridView列索引是在创建列时创建的。如果要更改GUI中的顺序,如果要更改DataGridView的顺序(如果要创建新的DataGridView或将该列放入临时列表中),请更改DisplayIndex,删除所有列并重新添加它们。

+0

它有效,男人。谢谢。 –

0

如果要更改数据源中某个元素的实际索引,则需要更新数据源结构。但是如果您需要更改列的显示位置,则可以是DisplayIndex属性。这是更改列索引的示例:

var items = new List<dynamic> 
{ 
    new 
    { 
     Element1 = "Test Value", 
     Id = 1 
    }, 
    new 
    { 
     Element1 = "Test Value", 
     Id = 1 
    } 
}; 
dataGridView1.DataSource = items; 
dataGridView1.Columns[1].DisplayIndex = 0; 
MessageBox.Show(dataGridView1[0, 0].Value.ToString()); 
+0

它的作品,男人。谢谢。 –