Прямой доступ к выпадающему списку DataGridView одним щелчком мыши?

Меня раздражает то, что я щелкаю один раз, чтобы выбрать строку в datagridview, а затем щелкаю еще раз, чтобы щелкнуть элемент управления в этой строке (в данном случае поле со списком).

Есть ли способ настроить это так, чтобы все это можно было сделать одним щелчком мыши вместо двух?

24
задан Jeff Atwood 11 December 2010 в 11:02
поделиться

2 ответа

Измените свойство EditMode вашего элемента управления DataGridView на "EditOnEnter". Это повлияет на все столбцы.

48
ответ дан 28 November 2019 в 23:12
поделиться

Если вы хотите выборочно применять редактирование одним щелчком мыши к определенным столбцам, вы можете переключить текущую ячейку во время события 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;
        }
    }
}

Конечно, если ваши столбцы и их индексы динамические, вам придется немного изменить это.

2
ответ дан 28 November 2019 в 23:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: