Если я что-то упускаю, вы можете просто использовать тип столбца 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.