3

我有 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 循环中提取值成员。请用代码指导我。谢谢

4

1 回答 1

1

value 成员显示在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 名称/值?对于可能的重复。

于 2012-01-03T11:08:49.727 回答