我使用的是一个DataGridView
,它使用带有几个列(包括一个DataGridViewComboBoxColumn
列)的设计器创建。
我不得不在每个单元格上点击两次甚至三次才能显示下拉列表,这有点让人恼火:
我猜想这是由于单元格使用第一次单击来获得焦点,但是有什么方法可以解决这个问题,所以单击一个单元格就可以立即显示组合框了吗?我注意到使用DataGridViewCheckBoxColumn
不会发生同样的问题.单击复选框立即切换它,不管该单元格是否有焦点。
发布于 2015-10-05 03:48:10
您可以简单地将EditMode
属性的DataGridView
设置为EditOnEnter
。
这样编辑就更容易了。几乎只需单击一次,但如果您希望立即为ComboBoxColumn
单击combobox显示下拉列表的内容,则可以处理CellClick
事件,然后使用网格的EditingControl
将其转换为DataGridViewComboBoxEditingControl
并使其显示下拉显示。
private void categoryDataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
{
//You can check for e.ColumnIndex to limit this to your specific column
var editingControl = this.categoryDataGridView.EditingControl as
DataGridViewComboBoxEditingControl;
if (editingControl != null)
editingControl.DroppedDown = true;
}
在使用此技巧时要小心,当用户只想在单元格之间导航而不进行编辑时,您可能会使下拉列表很烦人。
https://stackoverflow.com/questions/32947475
复制相似问题