由於代碼並未顯示如何構建列,因此很難說出問題所在,但代碼未使用DataGridViewComboBoxColum
。 DataGridViewComboBoxColumn
是您需要使第0列中的每一行都具有「男性」,「女性」選項的組合框。
格式錯誤的foreach
循環不正確,無法編譯。我假設for
循環是你正在尋找的。在此for
循環之後...將新行正確添加到網格中。然後創建一個新的DataGridViewComboBoxCell
並添加當前行的單元格[0]。 dataGridView1.Rows[counter].Cells[0] = cbCell;
。這個單元格[0]被添加到每一個新的行。
如果DataGridViewViewComboBoxColumn
設置正確,這是不必要的。添加DataGridViewComboBoxCell
是完全有效的,基本上允許您將組合框放入任何「SINGLE」單元格中。但是,如果以這種方式使用組合框本身的使用本身就是有問題的。
循環正在將數據「添加」到dataGridView1
。正如你在閱讀數據時,關於「性別」(男性,女性)的部分似乎缺失,所以這個值並不像其他值一樣。例如:沒有一個線象下面這樣:
dataGridView1.Rows[counter].Cells[0].Value = gender[counter];
如果有一個「性別」陣列保持此信息,則當代碼中的代碼組合上面的行設置該值(男,女)框中的列將自動將組合框選擇設置爲該值。數據將只是這兩個值中的「一個」(1)。
因此,假如這是你在找什麼下面的代碼演示瞭如何將數據讀入一個組合框單元格時,請小心的DataGridViewComboBoxColumn
字;如果組合框列的字符串數據與組合框項目列表中的某個項目不匹配,則代碼將在未被捕獲和處理時崩潰。如果該值爲空字符串,則組合框將選定值設置爲空。
// Sample data
string[] firstname = { "John", "Bob", "Cindy", "Mary", "Clyde" };
string[] lastname = { "Melon", "Carter", "Lawrence", "Garp", "Johnson" };
string[] gender = { "Male", "", "Female", "", "Male" };
// Create the combo box column for the datagridview
DataGridViewComboBoxColumn comboCol = new DataGridViewComboBoxColumn();
comboCol.Name = "Gender";
comboCol.HeaderText = "Gender";
comboCol.Items.Add("Male");
comboCol.Items.Add("Female");
// add the combo box column and other columns to the datagridview
dataGridView1.Columns.Add(comboCol);
dataGridView1.Columns.Add("FirstName", "First Name");
dataGridView1.Columns.Add("LastName", "Last Name");
// read in the sample data
for (int counter = 0; counter < 5; counter++)
{
dataGridView1.Rows.Add(gender[counter], firstname[counter], lastname[counter]);
}
希望這會有所幫助。
非常感謝JohnG –