将列添加到DataGridView(VB.NET)

时间:2018-04-17 15:50:45

标签: vb.net datagridview add

我想在我的项目中添加一个新列,但发生了一件奇怪的事情......

我的代码

adapter.fill(datatable)
dgv.datasource = datatable
dgv.columns.add("test","testHeader")

测试列的列索引应该是最后一个索引。 但是,我发现列索引为0,原始第0个索引变为1

我不确定发生了什么。是否有任何因素可能导致此问题? datagridview的属性设置有误吗?

4 个答案:

答案 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)