【问题标题】:Create a DataGridView with ComboBoxColumn from a DataTable使用 DataTable 中的 ComboBoxColumn 创建 DataGridView
【发布时间】:2013-06-28 08:01:00
【问题描述】:

我有一个DataGridView,我想以编程方式填写。通过创建DataTable 并通过BindingSource 将其绑定到DataGridViewDataGridView 中的列将创建为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 替换它。

标签: .net vb.net datagridview datatable datagridviewcombobox


【解决方案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)

【讨论】:

  • 您应该接受这个答案,即使它是您自己的帮助表明它已得到解决。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
  • 2015-01-27
  • 2014-01-31
相关资源
最近更新 更多