Меня раздражает то, что я щелкаю один раз, чтобы выбрать строку в datagridview, а затем щелкаю еще раз, чтобы щелкнуть элемент управления в этой строке (в данном случае поле со списком).
Есть ли способ настроить это так, чтобы все это можно было сделать одним щелчком мыши вместо двух?
Измените свойство EditMode вашего элемента управления DataGridView на "EditOnEnter". Это повлияет на все столбцы.
Если вы хотите выборочно применять редактирование одним щелчком мыши к определенным столбцам, вы можете переключить текущую ячейку во время события MouseDown, чтобы устранить щелчок для редактирования:
// Subscribe to DataGridView.MouseDown when convenient
this.dataGridView.MouseDown += this.HandleDataGridViewMouseDown;
private void HandleDataGridViewMouseDown(object sender, MouseEventArgs e)
{
// See where the click is occurring
DataGridView.HitTestInfo info = this.dataGridView.HitTest(e.X, e.Y);
if (info.Type == DataGridViewHitTestType.Cell)
{
switch (info.ColumnIndex)
{
// Add and remove case statements as necessary depending on
// which columns have ComboBoxes in them.
case 1: // Column index 1
case 2: // Column index 2
this.dataGridView.CurrentCell =
this.dataGridView.Rows[info.RowIndex].Cells[info.ColumnIndex];
break;
default:
break;
}
}
}
Конечно, если ваши столбцы и их индексы динамические, вам придется немного изменить это.