C#DataGridView列显示索引:它是否更改列索引?

时间:2014-01-10 19:02:04

标签: c# datagridview indexing multiple-columns

我有一个DataGridView对象,我通过为它们的DisplayIndex属性分配特定值来重新排列这些列,如下所示:

grdMain.Columns["BarcodeNumber"].DisplayIndex = 0;
grdMain.Columns["Type"].DisplayIndex = 1;
grdMain.Columns["Title"].DisplayIndex = 2;
grdMain.Columns["ParentID"].DisplayIndex = 3;

我正在重新安排列 之后我填充了DGV对象。

我的问题是:

如果我开始,例如,grdMain.Columns [“BarcodeNumber”]列是网格中的第五列(索引为4),然后将该列的DisplayIndex属性重新指定为0,哪个以下内容将正确访问BarcodeColumn的值:

grdMain.Columns[0]

grdMain.Columns[4]

更改DGV列的DisplayIndex会影响其在网格上的实际索引吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

来自MSDN

  

此属性的值不一定对应于集合中乐队的当前视觉位置。例如,如果用户在运行时重新排序DataGridView中的列(假设AllowUserToOrderColumns属性设置为true),则每列的Index属性值将不会更改。而是,DisplayIndex列值更改。但是,对行进行排序会改变其索引值。

答案 1 :(得分:0)

我认为虽然我不是100%肯定,因为我倾向于使用列名

除非您有特殊原因,否则最好使用列名而不是索引,这样您就不必担心列索引了。