我有一个很好的datgridview,其中有一个combobox列。在表格加载时,每个组合框单元中应加载不同的项目(印刷单位,温度单位等)。问题在于,在表单加载时,组合框单元格中将没有任何项目,并且默认值将为空。
将项目加载到每个组合框单元格的代码可以正常工作,但加载事件除外。加载表单后,我向表单添加了附加按钮,并测试了加载单元代码,使其按预期工作。我还确保组合框列未设置为只读。
private void FillUnits()
{
SQLData SQL1 = new SQLData();
DataTable Units = new DataTable();
SQL1.ConnString = "Data Source=LAPTOP-7DONKA7F;Initial Catalog=Natural_Gas;Integrated Security=True";
String LoadUnits = "Select * from Units1";
Units = SQL1.Load(LoadUnits);
List<string> dtr = new List<string>();
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
String str = PropertyTable.Rows[i]["DefaultUnit"].ToString();
DataRow dr = Units.Select("Default_Unit Like '%" + str + "%'").First();
int h = 0;
dtr.Clear();
while (dr[h].ToString() != String.Empty)
{
dtr.Add(dr[h].ToString());
h++;
}
DataGridViewComboBoxCell stateCell = (DataGridViewComboBoxCell)(dataGridView1.Rows[i].Cells["Unit"]);
stateCell.Items.AddRange(dtr.ToArray());
stateCell.Value = dtr[0];
}
}