DataGridViewComboBoxCell 不会掉落
DataGridViewComboBoxCell won't drop
我在 Visual Studio 2010 年使用 vb.NET。我找到了一个关于如何将 ComboBox 添加到 DataGridView 单元格的示例,并将其添加到我的代码中。当我 运行 代码并添加新行时,组合框是可见的,但它没有显示任何值,也不会下拉。
我是否遗漏了代码中的某些内容? 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 设置有这种效果。
您的代码几乎没问题。一切都掉下来了。您可以在列表中显示默认值。
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
我在 Visual Studio 2010 年使用 vb.NET。我找到了一个关于如何将 ComboBox 添加到 DataGridView 单元格的示例,并将其添加到我的代码中。当我 运行 代码并添加新行时,组合框是可见的,但它没有显示任何值,也不会下拉。
我是否遗漏了代码中的某些内容? 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 设置有这种效果。
您的代码几乎没问题。一切都掉下来了。您可以在列表中显示默认值。
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