2011-09-19 57 views
1

我想用一个看起来像DataGridViewTextBoxColumn的ComboBox列显示DataGridView。DataGridViewTextBoxColumn在编辑时更改为ComboBox

在DataGridView中我显示了DataGridViewTextBoxColumn,并且当用户在此列中的单元格上设置焦点时,单元格应该更改为ComboBox。

我不知道哪个函数必须被覆盖。

在DataGridTextBoxColumn中有编辑功能,我可以在此功能中绘制我的组合框吗?

回答

3

除非我遗漏了一些东西 - 你应该能够简单地使用DataGridViewComboBoxColumn列类型。

取决于你如何将你的专栏,你要么选择这个类型在类型中添加列对话框落下或programarically添加它,像这样:

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

要实现你的后效应组合框,看起来像一个文本框,直到你编辑它,你设置DataGridViewComboBoxColumn的DisplayStyle财产是没有什么:

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细胞的底层控制。

+0

是的,但我想要所有列作为DataGridViewTextBoxColumn,并且直到用户单击到单元格,此单元格应该更改为DataGridViewComboBoxCell。 – Robert

+0

我在想这样的事情:http://www.akadia.com/services/dotnet_combobox_in_datagrid.html – Robert

+0

@albert所以你想要一个comboboxcolumn似乎是一个文本框,直到它被点击? –