2011-09-19 56 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似乎是一個文本框,直到它被點擊? –