使用 DataTable 中的 ComboBoxColumn 创建 DataGridView
Posted
技术标签:
【中文标题】使用 DataTable 中的 ComboBoxColumn 创建 DataGridView【英文标题】:Create a DataGridView with ComboBoxColumn from a DataTable 【发布时间】:2013-06-28 08:01:00 【问题描述】:我有一个DataGridView
,我想以编程方式填写。通过创建DataTable
并通过BindingSource
将其绑定到DataGridView
,DataGridView
中的列将创建为TextBoxColumns
。下面是一个代码示例:
Dim dataTable As DataTable = New DataTable()
dataTable.Columns.AddRange(New DataColumn() New DataColumn("TextBoxColumn1"),
New DataColumn("TextBoxColumn2"),
New DataColumn("ComboBoxColumn"),
New DataColumn("TextBoxColumn3"),
New DataColumn("TextBoxColumn4"))
Dim bindingSource As BindingSource = New BindingSource
bindingSource.DataSource = dataTable
dataGridView.DataSource = bindingSource
在DataGridView
中使列“ComboBoxColumn”成为ComboBoxColumn
的最佳方法是什么?
我可以在DataGridView
中手动创建ComboBoxColumn
,然后将其绑定到DataColumn
,但我想知道是否有更好的方法,例如在DataColumn
中设置属性或类似的东西那个。
【问题讨论】:
This answer 展示了如何将DataGridViewComboBoxColumn 添加到您的dataGridView
。
谢谢,但这并不是我想要的,因为DataGridView
中的列是在网格绑定到数据时创建的;我自己没有添加它们
当然,我可以稍后替换自动生成的列。
我建议你这样做。按名称抓取它,然后用新的 DataGridViewComboBoxColumn 替换它。
【参考方案1】:
按照@Codesleuth 的建议,我将自动生成的DataGridViewTextBoxColumn
替换为DataGridComboBoxColumn
,如下所示:
Dim comboBoxColumn As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn()
comboBoxColumn.DataPropertyName = "ComboBoxColumn"
comboBoxColumn.DataSource = comboBoxBindingSource
comboBoxColumn.DisplayMember = "ComboBoxColumn"
comboBoxColumn.ValueMember = "ComboBoxColumn"
DataGridView.Columns.RemoveAt(COLUMN_INDEX)
DataGridView.Columns.Insert(COLUMN_INDEX, comboBoxColumn)
【讨论】:
您应该接受这个答案,即使它是您自己的帮助表明它已得到解决。谢谢!以上是关于使用 DataTable 中的 ComboBoxColumn 创建 DataGridView的主要内容,如果未能解决你的问题,请参考以下文章