将列添加到DataGridView(VB.NET)
我想在我的项目中添加一个新专栏,但发生了一件奇怪的事情 我的代码将列添加到DataGridView(VB.NET),vb.net,datagridview,add,Vb.net,Datagridview,Add,我想在我的项目中添加一个新专栏,但发生了一件奇怪的事情 我的代码 adapter.fill(datatable) dgv.datasource = datatable dgv.columns.add("test","testHeader") 测试列的列索引应该是最后一个索引。 但是,我发现列索引是0,而原来的第0个索引变成了1 我不知道发生了什么事。是否有任何因素会导致此问题? datagridview的属性设置错误 很简单,首先获取总列数,然后在末尾添加列: Dim col as New
adapter.fill(datatable)
dgv.datasource = datatable
dgv.columns.add("test","testHeader")
测试列的列索引应该是最后一个索引。
但是,我发现列索引是0,而原来的第0个索引变成了1
我不知道发生了什么事。是否有任何因素会导致此问题?
datagridview的属性设置错误 很简单,首先获取总列数,然后在末尾添加列:
Dim col as New DataGridViewColumn
col.HeaderText = "abc"
dgv.Columns.Insert(dgv.ColumnCount, col)
如果上述代码没有帮助,请尝试将列添加到IDataTable
本身:
datatable.Columns.Add("Header text", GetType(System.String)).SetOrdinal(datatable.Columns.Count)
你的代码
adapter.fill(datatable)
dgv.datasource = datatable
dgv.columns.add("test","testHeader")
似乎工作正常。
我猜您正在填充datagridview,这就是添加的列位于索引0中的原因
尝试添加
dgv.DataSource = Nothing
您将注意到添加的列“test”、“testHeader”将位于索引0中。
再次设置
dgv.datasource = datatable
将导致添加的列保留在索引0处,而datatable将添加到后续列。有一个
DataGridViewColumn.DisplayedIndex属性来控制可见列的顺序
请记住,DataGridView跟踪这些值,并为网格中的其他列更新它们。将其中一些更改为0会将所有其他列更新为更高的值。请尝试此代码以添加列
Dim col As New DataGridViewTextBoxColumn
col.DataPropertyName = "PropertyName"
col.HeaderText = "SomeText"
col.Name = "colWhateverName"
DataGridView1.Columns.Add(col)
顺便说一下,测试列仍然显示在datagridview的最后一列中。如果我在这个项目中添加另一个新的datagridview并执行相同的操作,结果是相同的。如果我将这个datagridview复制到另一个全新的项目中,一切都会像往常一样好。因此,我认为原始项目中应该有错误,请尝试编辑该问题。将您的评论移至问题正文,并尝试添加更多细节(至少是aspx标记的相关部分)。Othrewise此问题可能已结束。发布的代码不会重复此问题。这是一个基于零的集合。下一个索引将是ColumnCount NOT ColumnCount+1它仍然不起作用。此时我添加了新列,新列的索引很好。但是,在屏幕上显示dgv后,新列的索引将自动更改为0@F.C.Hsiao,重新检查我的答案:)