我在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设置有这种影响。
答案 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