在DataGridView
中设置值后,即使我可以通过Value
属性访问它们,它们也不会显示在控件上。
问题是Value
单元格中没有默认ComboBox
。
void ComboBoxColumn()
{
string[] values = { "one", "two", "three" };
string columnName = "Test";
var column = new DataGridViewComboBoxColumn();
column.Name = columnName;
column.ValueType = typeof(string);
foreach(string item in values)
{
column.Items.Add(item);
}
Grid.Columns.Add(column);
// problematic part
foreach(DataGridViewRow row in Grid.Rows)
{
row.Cells[columnName].Value = values[0];
}
}
答案 0 :(得分:1)
void SetValues()
{
string[] values = { "one", "two", "three" };
string columnName = "Test";
var column = new DataGridViewComboBoxColumn();
column.Name = columnName;
column.ValueType = typeof(string);
foreach (string item in values)
{
column.Items.Add(item);
}
dataGridView1.Columns.Add(column);
}
在我的机器上,此代码正在运行。如果我单击ComboBoxColumn,我可以看到树值并选择一个。你有什么问题?
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Cells[columnName].Value = values[1];
}
如果添加此代码,则组合框的默认值显示值“two”。
答案 1 :(得分:1)
void AddComboColumn()
{
string[] values = { "one", "two", "three" };
string columnName = "Test";
var column = new DataGridViewComboBoxColumn();
column.Name = columnName;
column.ValueType = typeof(string);
foreach (string item in values)
{
column.Items.Add(item);
}
dataGridView1.Columns.Add(column);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Cells[columnName].Value = values[2];
}
}
这些代码也有效......检查,可能是'RandomValue(values);'中的问题? 我没有这部分代码,也无法确定。 附:在我的编程默认值==“三”。
答案 2 :(得分:0)
答案 3 :(得分:0)
首先在datagridveiw ColDryg中为组合框命名 然后在initvalue函数中编写此代码
DataGridViewComboBoxColumn ColDryg =
(DataGridViewComboBoxColumn)Gv_dtails.Columns["ColDryg"];
ColDryg.DataSource = db.Drugs.ToList();
ColDryg.ValueMember = "Id";
ColDryg.DisplayMember ="Arabic_name";
你在数据库中有一个表,它的名字是药物