我有一个 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/