VB.NET - 在列表中向DataGridView添加列

Sul*_*nen 1 vb.net datagridview

我有一个程序,我让用户动态地将DataGridViews添加到界面,这些也被添加到列表中以便于管理.所有DataGridView都有自己的数据源.我正在使用数据绑定源来获取要添加的不同DataGridViewTextBoxColumns.

问题如下:当用户添加第一个表时,运行以下代码:

dataGridList(dataGridList.Count -1).Clear()
dataGridList(dataGridList.Count -1).Add(NameDataGridViewTextBoxColumn)
Run Code Online (Sandbox Code Playgroud)

没问题,显示正确的数据,但是当用户添加第二个表时,我会抛出异常:

"提供的列已经属于数据网格视图"

我觉得这很奇怪,因为我访问不同的DataGridView是对的吗?

所有这一切的要点是能够根据用户选择查看所有DataGridViews中的不同列.

希望您能够帮助我.

Jay*_*Jay 5

你如何确定NameDataGridViewTextBoxColumn是什么?我的意思是你提到的textBoxColumns列表是如何创建的?

您可能实际上需要创建一个New DataGridViewTextBoxColumn来添加适当的属性集.

您可以在代码中添加如下列:

        Dim col As New DataGridViewTextBoxColumn
        col.DataPropertyName = "PropertyName"
        col.HeaderText = "SomeText"
        col.Name = "colWhateverName"
        DataGridView1.Columns.Add(col)
Run Code Online (Sandbox Code Playgroud)

请务必设置相应的属性名称等.您也可以从现有列中复制它...

col.DataPropertyName = NameDataGridViewTextBoxColumn.DataPropertyName
Run Code Online (Sandbox Code Playgroud)

例如.