我的WinForms应用程序中有一个DataGridView和一个DataGridViewComboBoxColumn.我需要手动下拉(打开)这个DataGridViewComboBoxColumn,比如单击一个按钮后.
我需要这个的原因是我已将SelectionMode设置为FullRowSelect,我需要单击2-3次才能打开组合框.我想点击组合框,它应该立即下拉.我想用CellClick事件做这个,或者还有其他方法吗?
我在Google和VS帮助中搜索,但我还没有找到任何信息.
有人可以帮忙吗?
我知道这不是理想的解决方案,但它确实创建了一个在单元格内工作的单击组合框.
Private Sub cell_Click(ByVal sender As System.Object, ByVal e As DataGridViewCellEventArgs) Handles DataGridView1.CellClick DataGridView1.BeginEdit(True) If DataGridView1.Rows(e.RowIndex).Cells(ddl.Name).Selected = True Then DirectCast(DataGridView1.EditingControl, DataGridViewComboBoxEditingControl).DroppedDown = True End If End Sub
其中"ddl"是我在gridview中添加的组合框.
谢谢ThisMat,您的解决方案完美无缺.
我在C#中的代码:
private void dataGridViewWeighings_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex < 0) { return; // Header } if (e.ColumnIndex != 5) { return; // Filter out other columns } dataGridViewWeighings.BeginEdit(true); ComboBox comboBox = (ComboBox)dataGridViewWeighings.EditingControl; comboBox.DroppedDown = true; }
通过设置,我已经能够接近你想要的东西了
DataGridView1.EditMode = DataGridViewEditMode.EditOnEnter
只要没有显示其他单元格的下拉列表,它就应该立即显示所选单元格的下拉列表.
如果出现任何问题,我会继续思考和更新.