DataGridView
на самом деле имеет DataGridViewComboBoxColumn
. Если вы перейдете к конструктору столбцов и добавите новый столбец, вы заметите, что можете выбрать один из нескольких типов. Он ведет себя точно так, как вы описали - при редактировании он появляется. DataGridView
использует так называемые элементы управления для редактирования и имеет различные события для добавления элемента управления в ячейку при редактировании.
В любом случае, если все, что вам нужно, это раскрывающийся список, он доступен из коробки.
Чтобы заполнить поле со списком элементами, в редакторе столбцов вы заметите, что у него есть свойство Items
для ручной настройки элементов, или вы можете использовать свойства привязки данных: DataSource
, DisplayMember
, ValueMember
. При связывании данных возникают проблемы, когда ожидаемое значение отсутствует в коллекции элементов, вы получите много ошибок в ячейках; но их можно избежать.
Некоторые полезные ссылки:
http://msdn.microsoft.com/en-us/library/system.windows.forms.datagridviewcomboboxcolumn.aspx
http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/e8e2d9eb-fe39-42ab-9a18-2194dac54675/