值未显示在 DataGridViewComboBox 控件上

Posted

技术标签:

【中文标题】值未显示在 DataGridViewComboBox 控件上【英文标题】:Value doesn't show up on a DataGridViewComboBox control 【发布时间】:2012-01-17 13:57:43 【问题描述】:

DataGridView 中设置值后,即使我可以通过Value 属性访问它们,它们也不会显示在控件上。

问题是ComboBox 单元格中没有默认的Value

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

【问题讨论】:

【参考方案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);'中可能有问题吗? 我没有这部分代码,无法确定。 附言在我的 prog 默认值 == "three"。

【讨论】:

我说的是组合框中的默认值,而不是下拉菜单。 RandomValues() 工作正常。 如果我理解你没有下拉列表?或者你只是没有默认值? 我没有默认值。 有趣,我不能重复这个问题。以我的方式,一切都很好。 哦!好的!我重复!只有当我有相同名称的列(“测试”)时,我才没有默认值。我两次调用此方法,在第二列中我没有默认值。检查一下,你可能有相同的列名吗?【参考方案2】:
    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];
        

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

【讨论】:

这不是问题,问题是第二部分。 row.Cells[columnName].Value = values[1];也有效。您没有提供 RandomValue 的代码。 奇怪,对我不起作用。另外,编辑了问题以使自己更清楚。 row.Cells[columnName].Value = values[1];显示值“二”作为默认值。我不明白你的问题。【参考方案3】:

我无法重现您的错误。这是我的 sample project

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

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

【讨论】:

【参考方案4】:

首先为 datagridveiw ColDryg 中的组合框命名 然后在 initvalue 函数中写下这段代码

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

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

【讨论】:

以上是关于值未显示在 DataGridViewComboBox 控件上的主要内容,如果未能解决你的问题,请参考以下文章

日期时间值未显示在 jQuery 数据表中

Razor表单值未显示

我输入的输入值未显示在 JavaScript 中

ngModel 值未显示在 angular2 的控件中

纬度和经度值未显示在 TextView 中

嵌入 jsp 时,数据库值未显示在小程序中