DataGridViewTextBoxColumn, который изменяется на ComboBox при редактировании - PullRequest
1 голос
/ 19 сентября 2011

Я хочу показать DataGridView со столбцом ComboBox, который выглядит как DataGridViewTextBoxColumn.

В DataGridView у меня отображается DataGridViewTextBoxColumn, и когда пользователь устанавливает фокус на ячейку в этом столбце, ячейка должна быть изменена на ComboBox.

Я не знаю, какую функцию нужно переопределить.

В DataGridTextBoxColumn есть функция Edit, могу ли я нарисовать свой комбинированный список во время этой функции?

1 Ответ

3 голосов
/ 19 сентября 2011

Если я что-то упускаю, вы можете просто использовать тип столбца DataGridViewComboBoxColumn.

В зависимости от того, как вы добавляете столбцы, вы выбираете этот тип в раскрывающемся списке Тип в столбце Добавить.диалоговое окно или добавьте его программно следующим образом:

DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
dataGridView1.Columns.Add(col);

Чтобы добиться эффекта, который вы получаете после выпадающего списка, который выглядит как текстовое поле, до тех пор, пока вы его не отредактируете, установите для свойства DataGridViewComboBoxColumn DisplayStyle значение Nothing:

List<string> names = new List<string> { "Joe", "Sally", "Kate" };

DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn();
col.DataSource = names;
col.DisplayStyle = DataGridViewComboBoxDisplayStyle.Nothing;

dataGridView1.Columns.Add(col);

Вы также можете получить доступ к базовому элементу управления ячейки DataGridView через событие EditingControlShowing.

...