来自datasource的ComboBoxColumn默认值

时间:2017-10-10 10:54:06

标签: vb.net winforms

我正在编写简单的vb app,我想要做的是将数据库中的值(以数据源形式提供)传递给我的comboBox列的默认值

这就是我现在所做的:

将数据传递给DataGridView

DataGridView2.DataSource = source

工作得很好,它从数据库中获取数据并填充整个表。

问题是:我想将其中一列作为ComboBox。但我也想将默认值设置为数据库中的值。这是我如何制作组合框列:

Dim comboboxColumn As New DataGridViewComboBoxColumn
          comboboxColumn.Items.Add("sleep")
            comboboxColumn.Items.Add("stay")
            comboboxColumn.Items.Add("Go")
            comboboxColumn.Name = "state"
' comboboxColumn.DefaultCellStyle.NullValue //WHAT can I do HERE?
            DataGridView2.Columns.Add(comboboxColumn)

你们可以分享一些想法吗?

1 个答案:

答案 0 :(得分:0)

您可以创建一个DataTable并将其设置为组合框。然后,您必须设置DataGridView.AutoGenerateColumns = False并手动创建其他列。在下面的示例中,我自己创建了dataTable,但它可能是来自数据库查询的DataTable.Load

Dim dt As New DataTable()

With dt
    .Columns.Add("Value", GetType(String))
    .Rows.Add("sleep")
    .Rows.Add("stay")
    .Rows.Add("go")
    .AcceptChanges()
End With

With comboboxColumn
    .HeaderText = "State"
    .DataSource = dt
    .DataPropertyName = "STATE"
    .DisplayMember = "Value"
    .ValueMember = "Value"
End With
相关问题