如果你想在一個單一的細胞特林如果你想有一個組合框
string[] innerrow1 = new string[] { "50", "60", "70" };
string[] innerrow2 = new string[] { "a", "b", "c" };
DataGridViewTextBoxColumn Col1 = new DataGridViewTextBoxColumn();
Col1.HeaderText = "Product ID";
dataGridView1.Columns.Add(Col1);
DataGridViewComboBoxColumn Col2 = new DataGridViewComboBoxColumn();
Col2.HeaderText = "Product Name";
Col2.Name = "Product Name";
Col2.MaxDropDownItems = 3;
Col2.Items.Add(innerrow1[0]);
Col2.Items.Add(innerrow1[1]);
Col2.Items.Add(innerrow1[2]);
dataGridView1.Columns.Add(Col2);
DataGridViewTextBoxColumn Col3 = new DataGridViewTextBoxColumn();
Col3.HeaderText = "Product Price";
dataGridView1.Columns.Add(Col3);
dataGridView1.Rows.Add(new object[] { "1", innerrow1[0], "1000" });
dataGridView1.Rows.Add(new object[] { "2", innerrow1[1], "2000" });
dataGridView1.Rows.Add(new object[] { "3", innerrow1[2], "3000" });
如果你想不同的下拉爲每行簡化更改您的代碼如下
string innerrow1 = "50 60 70";
string innerrow2 = "a b c";
public Form1()
{
InitializeComponent();
string[] innerrow1 = new string[] { "50", "60", "70" };
string[] innerrow2 = new string[] { "a", "b", "c" };
DataGridViewTextBoxColumn Col1 = new DataGridViewTextBoxColumn();
Col1.HeaderText = "Product ID";
dataGridView1.Columns.Add(Col1);
DataGridViewComboBoxColumn Col2 = new DataGridViewComboBoxColumn();
Col2.HeaderText = "Product Name";
Col2.Name = "Product Name";
Col2.MaxDropDownItems = 3;
Col2.Items.Add(innerrow1[0]);
Col2.Items.Add(innerrow1[1]);
Col2.Items.Add(innerrow1[2]);
dataGridView1.Columns.Add(Col2);
DataGridViewTextBoxColumn Col3 = new DataGridViewTextBoxColumn();
Col3.HeaderText = "Product Price";
dataGridView1.Columns.Add(Col3);
dataGridView1.Rows.Add(new object[] { "1", innerrow1[0], "1000" });
dataGridView1.Rows.Add(new object[] { "2", innerrow2[0], "2000" });
setCellComboBoxItems(dataGridView1, 0, 1, innerrow1);
setCellComboBoxItems(dataGridView1, 1, 1, innerrow2);
}
private void setCellComboBoxItems(DataGridView dataGrid, int rowIndex, int colIndex, object[] itemsToAdd)
{
DataGridViewComboBoxCell dgvcbc = (DataGridViewComboBoxCell)dataGrid.Rows[rowIndex].Cells[colIndex];
// You might pass a boolean to determine whether to clear or not.
dgvcbc.Items.Clear();
foreach (object itemToAdd in itemsToAdd)
{
dgvcbc.Items.Add(itemToAdd);
}
}
來源
2014-12-19 14:51:38
LPs
我不明白你的親blem。您的代碼正在向第二列添加內向類型。你想要的是所有的字符串放在第二列? – LPs
第二列是否意味着下拉? – LarsTech
請解釋你看到的結果以及你試圖讓他們成爲什麼樣的結果。好像你想要行內的行,這是不能做到的。或者你只是想讓文字「50,60,70」出現在第二列? –