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 选择值成员的主要内容,如果未能解决你的问题,请参考以下文章