1

在 中设置值后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];
    }
}
4

4 回答 4

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];
        }

如果添加此代码,组合框的默认值显示值“二”。

于 2012-01-17T14:06:05.770 回答
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);'中可能有问题吗?我没有这部分代码,无法确定。PS在我的编默认值==“三”。

于 2012-01-17T14:18:04.883 回答
0

首先在 datagridveiw ColDryg 中为组合框命名,然后在 initvalue 函数中编写此代码

  DataGridViewComboBoxColumn ColDryg =
 (DataGridViewComboBoxColumn)Gv_dtails.Columns["ColDryg"];
             ColDryg.DataSource = db.Drugs.ToList();
             ColDryg.ValueMember = "Id";
             ColDryg.DisplayMember ="Arabic_name";

你在数据库中有一个表,它的名字是 Drug

于 2015-03-18T08:29:41.227 回答
0

我无法重现您的错误。这是我的 示例项目

试着给我们任何其他可能是问题的东西。

注意:我直接复制了您的代码(然后在某些行中添加了)

于 2012-01-17T14:53:54.517 回答