DataGridViewComboBoxCell不会掉线

时间:2017-09-20 12:22:45

标签: vb.net datagridview datagridviewcomboboxcell

我在Visual Studio 2010中使用vb.NET。我找到了一个如何将ComboBox添加到DataGridView单元格的示例,并将其添加到我的代码中。当我运行代码并添加一个新行时,ComboBox是可见的,但它没有显示任何值,它不会下拉。

我是否遗漏了代码中的内容? DataGridView是否需要设置某些属性?

dgvFiles.Rows.Add({"Cell1","Cell2"})
Dim gridComboBox As New DataGridViewComboBoxCell
gridComboBox.Items.Add("A") 'Populate the Combobox
gridComboBox.Items.Add("B") 'Populate the Combobox
gridComboBox.Items.Add("C") 'Populate the Combobox
dgvFiles(2, dgvFiles.Rows.Count - 1) = gridComboBox

编辑:

我在设计时设置了四列,这不是问题所在。问题结果是我已经将DataGridView设置为' EditProgrammatically'。我最初将其更改为阻止用户编辑文本单元格,但显然,它阻止了ComboBoxes的删除。

我感谢所有给出的答案。我很抱歉,我忘了提到我在设计时设置了四列,这个问题是由于我没有意识到EditProgrammatically设置有这种影响。

1 个答案:

答案 0 :(得分:0)

你的代码几乎没问题。一切都在下降。您可以在列表中显示默认值。

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        dgvfiles.Columns.Add("Column1", "Column 1")
        dgvfiles.Columns.Add("Column2", "Column 2")
        dgvfiles.Columns.Add("Column3", "Column 3")
        dgvfiles.Columns.Add("Column4", "Column 4")
        dgvfiles.Rows.Add({"Cell1", "Cell2"})
        Dim gridComboBox As New DataGridViewComboBoxCell
        gridComboBox.Items.Add("A") 'Populate the Combobox
        gridComboBox.Items.Add("B") 'Populate the Combobox
        gridComboBox.Items.Add("C") 'Populate the Combobox
        gridComboBox.Value = gridComboBox.Items(0)
        dgvfiles(2, dgvfiles.Rows.Count - 2) = gridComboBox
    End Sub

    Private Sub dgvfiles_CellBeginEdit(sender As Object, e As DataGridViewCellCancelEventArgs) Handles dgvfiles.CellBeginEdit
        If e.ColumnIndex = 2 Then
            'Do something
        Else
            e.Cancel = True
        End If
    End Sub

enter image description here