Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 从DataTable创建带有ComboBoxColumn的DataGridView_.net_Vb.net_Datagridview_Datatable_Datagridviewcombobox - Fatal编程技术网

.net 从DataTable创建带有ComboBoxColumn的DataGridView

.net 从DataTable创建带有ComboBoxColumn的DataGridView,.net,vb.net,datagridview,datatable,datagridviewcombobox,.net,Vb.net,Datagridview,Datatable,Datagridviewcombobox,我有一个DataGridView,我想以编程方式填充它。通过创建DataTable并通过BindingSource将其绑定到DataGridView,将DataGridView中的列创建为TextBoxColumns。下面是一个代码示例: Dim dataTable As DataTable = New DataTable() dataTable.Columns.AddRange(New DataColumn() {New DataColumn("TextBoxColumn1"),

我有一个
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
的最佳方法是什么


我可以在
DataGridView
中手动创建
ComboBoxColumn
,然后将其绑定到
DataColumn
,但我想知道是否有更好的方法,比如在
DataColumn
中设置属性或类似的方法。

遵循@codesluth的建议,我将自动生成的
DataGridViewTextBoxColumn
替换为
DataGridComboxColumn
,如下所示:

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)

显示如何向
dataGridView
添加列。谢谢,但这并不完全是我想要的,因为
dataGridView
中的列是在网格绑定到数据时创建的;我不会自己添加,当然,我可以稍后替换自动生成的列。我建议您这样做。按名称获取它,然后将其替换为新的DataGridViewComboxColumn。您应该接受此答案,即使它是您自己的,以帮助显示它已解决。谢谢