我想在我的项目中添加一个新列,但发生了一件奇怪的事情......
我的代码
adapter.fill(datatable)
dgv.datasource = datatable
dgv.columns.add("test","testHeader")
测试列的列索引应该是最后一个索引。 但是,我发现列索引为0,原始第0个索引变为1
我不确定发生了什么。是否有任何因素可能导致此问题? datagridview的属性设置有误吗?
答案 0 :(得分:0)
很简单,首先获取总列数,然后在结尾处添加列:
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)
答案 1 :(得分:0)
您的代码
adapter.fill(datatable)
dgv.datasource = datatable
dgv.columns.add("test","testHeader")
似乎工作正常。 我想你正在重新填充datagridview,这就是添加的列在索引0中的原因。
尝试添加
dgv.DataSource = Nothing
你会注意到添加的列" test"," testHeader"将在索引0中。 再次设置
dgv.datasource = datatable
将导致添加的列保留在索引0,而数据表将添加到后续列。
答案 2 :(得分:0)
有一个DataGridViewColumn.DisplayedIndex
属性来控制可见列的顺序。
请记住,DataGridView会跟踪theese值并为网格中的其他列更新它们。将其中一些变为0会将所有其他列更新为更高的值。
答案 3 :(得分:0)
尝试使用此代码添加列
Dim col As New DataGridViewTextBoxColumn
col.DataPropertyName = "PropertyName"
col.HeaderText = "SomeText"
col.Name = "colWhateverName"
DataGridView1.Columns.Add(col)