Datagridivew DataGridViewComboBoxColumn 选择值成员

Posted

技术标签:

【中文标题】Datagridivew DataGridViewComboBoxColumn 选择值成员【英文标题】:Datagridivew DataGridViewComboBoxColumn select value member 【发布时间】:2012-01-03 10:54:29 【问题描述】:

我有 datagridview,它有一个组合框列。我填充组合框列。当我从组合框列中选择任何文本时,我需要在读取 for 循环中的数据时获取该值。

dgFilter在这里是datagridview

            DataGridViewComboBoxColumn dgcoSpec = new DataGridViewComboBoxColumn();
            dgcoSpec = new DataGridViewComboBoxColumn();
            dgcoSpec.DataSource = loadOperators();
            dgcoSpec.DisplayMember = "Operatortxt";
            dgcoSpec.ValueMember = "Operatorvalue";
            dgcoSpec.AutoComplete = true;
            dgcoSpec.HeaderText = "Operators";
            dgcoSpec.Name = "Operators";
            dgcoSpec.DefaultCellStyle.NullValue = "--Select--";
            dgcoSpec.Width = 130;
            dgFilter.Columns.Insert(1, dgcoSpec);

在这里我从组合框列中读取数据

for (int i = 0; i <= dgFilter.Rows.Count - 1; i++)

  strOperator = dgFilter.Rows[i].Cells[1].Value.ToString().Trim();

但问题是我没有获得组合框值成员,而是获得了显示成员。 那么如何从 for 循环中提取值成员。请用代码指导我。谢谢

【问题讨论】:

【参考方案1】:

值成员DataGridViewComboboxCell 中显示的字符串。

实际的Combobox 控件仅存在于用户编辑单元格的时间范围内。

如果您的意思是要获取DataGridViewComboboxCell项列表中的值的索引,可以查询该值的索引:

for (int i = 0; i <= dgFilter.Rows.Count - 1; i++)

    var cell = dgFilter.Rows[i].Cells[1] as DataGridViewComboboxCell;
    int index = cell == null || cell.Value == null ? -1 : cell.Items.IndexOf(cell.Value);
    Console.WriteLine(index);

在本例中,我使用-1 作为无效值。

编辑刚刚注意到您使用的是DataSource; 请参阅DataGridViewComboBoxColumn name/value how? 以了解可能的重复。

【讨论】:

以上是关于Datagridivew DataGridViewComboBoxColumn 选择值成员的主要内容,如果未能解决你的问题,请参考以下文章

Datagridivew DataGridViewComboBoxColumn 选择值成员

怎么获取datagridview

c#设置datagridview行标题

VB.net datagridview 折叠展开

怎么插入datagridview的行

datagridview怎么把一行数据复制到另一个datagridview [C# VS2005]