Mr.*_*Boy 7 .net c# datagridview winforms datagridviewcomboboxcolumn
我正在使用a DataGridView,使用包含DataGridViewComboBoxColumn列的几列的设计器创建.
我必须点击每个单元格两次甚至三次以显示下拉列表,这有点令人恼火:
我认为这是由于单元格使用第一次点击来获得焦点,但有没有办法解决这个问题所以点击一个单元格会立即显示组合框?我注意到,使用DataGridViewCheckBoxColumn同样的问题没有不会发生......点击复选框立即切换它不管是细胞具有焦点.
你可以简单地设置EditMode您的属性DataGridView来EditOnEnter.
它使编辑更容易.几乎单击,但如果您想要ComboBoxColumn立即单击组合框显示下拉列表的内容,您可以处理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;
}
Run Code Online (Sandbox Code Playgroud)
使用这个技巧时要小心,当用户只想在不进行编辑的情况下在单元格之间导航时,可能会让用户感到烦恼.