DataGridViewComboBoxCell занимает несколько кликов, чтобы вызвать меню для другой ячейки. Советы по ускорению процесса? - PullRequest
4 голосов
/ 29 июня 2009

Чтобы вызвать меню для DataGridViewComboBoxCell, я сначала должен нажать:
1) строка ячейки, которую я хочу редактировать
2) внутри ячейки, которую я хочу редактировать
3) Я хочу снова отредактировать, чтобы открыть ComboBox для ячейки.

Если другая ячейка уже выбрана, первый щелчок закроет уже активный ComboBox, затем потребуется еще 3 щелчка, чтобы открыть ComboBox.

Видя, что ничего подобного уровня активности не требуется, чтобы щелкнуть DataGridViewButtonCell (DGVButtonCells отвечает на первый щелчок, второй, если уже было открыто меню), может кто-нибудь предложить простой способ получения класса, производного от DataGridViewComboBoxCell иметь тот же уровень отзывчивости, что и DGVButtonCell?

Ответы [ 2 ]

9 голосов
/ 02 июля 2009

Попробуйте установить EditMode в EditOnEnter (либо в коде, либо на странице свойств DataGridView). Это должно открыть его при первом клике.

dataGridView1.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;
0 голосов
/ 31 августа 2015

Над ответом создать проблему при выборе строки

Этого можно добиться, подписавшись на событие EditingControlShowing сетки и там для управления типом ComboBox

ComboBox ctl = e.Control as ComboBox;
ctl.Enter -= new EventHandler(ctl_Enter);
ctl.Enter += new EventHandler(ctl_Enter);

А в событии Enter используйте свойство

void ctl_Enter(object sender, EventArgs e)
{
    (sender as ComboBox).DroppedDown = true;
}

DroppedDown указывает, так как имя указывает на то, отображается ли раскрывающаяся область или нет, поэтому при каждом вводе элемента управления она будет иметь значение true и отображать элементы без необходимости дополнительных щелчков.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...