c# - Datagridivew DataGridViewComboBoxColumn 选择值成员

标签 c# datagridview datagridviewcombobox

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

最佳答案

值成员 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?可能重复。

关于c# - Datagridivew DataGridViewComboBoxColumn 选择值成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8711182/

相关文章:

c# - 如何替换dll中的类?

c# - Windows DataGridView _RowCommand

c# - DataGridViewComboBox 值无效?

c# - DataGridViewCombBoxColumn 单元格值和不同的下拉列表

sql - 是否可以将未绑定(bind)的列插入到绑定(bind)的数据 GridView 中?

c# - 可空对象必须在 Select Linq 中具有值

c# - 在 Visual Studio 中,是否可以将 .NET 4.x CLR 作为 2.0 类库 API 的目标?

c# - Datagridview 和选项卡控件问题

c# - 在c#中检测点击脱离控件

c# - 异步方法未按正确(预期)顺序执行