我想显示一个带有ComboBox列的DataGridView,该列看起来像DataGridViewTextBoxColumn。
在DataGridView中,我显示了DataGridViewTextBoxColumn,当用户在此列的单元格上设置Focus时,单元格应更改为ComboBox。
我不知道必须覆盖哪个函数。
在DataGridTextBoxColumn中有Edit函数,我可以在这个函数中绘制我的组合框吗?
答案 0 :(得分:3)
除非我遗漏了什么 - 你应该能够简单地使用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);
您还可以通过EditingControlShowing事件访问DataGridView单元格的基础控件。