c# 获取 DatagridviewComboBoxCell 的选定值
Posted
技术标签:
【中文标题】c# 获取 DatagridviewComboBoxCell 的选定值【英文标题】:c# Get DatagridviewComboBoxCell's Selected Value 【发布时间】:2016-12-15 19:10:39 【问题描述】:我正在构建一个具有DataGridView
的 Winforms 应用程序。 DataGridView 未绑定到数据源。我的网格上有一个comboboxColumn
,我正在使用datatable
填充它。
当我尝试检索 comboBoxCell 的 selectedValue 时,它给出的是第一个匹配的值,而不是确切的选定值。
Convert.ToString((datagridview1.Rows[i].Cells["columnName"] as DataGridViewComboBoxCell).Value)
例如, 组合框数据表是
DisplayMember 值成员 橙1111 苹果2222 香蕉3333 苹果 4444 番石榴 5555现在,如果我选择 ID 为 4444 的 Apple,上面的代码将获得 ID 为 2222 的 Apple。
我尝试执行下面链接中给出的步骤,但这是给出索引而不是值。
https://***.com/a/30157754/3619679
【问题讨论】:
如果你只是打电话给DataGridView1.Rows[i].Cells["columnName"].Value
。但是你的代码看起来也不错。只是为了测试。我总是按照我写的那样使用。也许在这种情况下它会起作用。并确保您输入ValueMember
。
是的,我试过了。但是,如果存在具有不同 ValueMember ID 的重复值,它会给出组合框列表中的第一个值,而不是实际选择的值。
【参考方案1】:
我能够在以下链接的帮助下解决问题
https://***.com/a/30157754/3619679
SelectedItem
存储所选组合框项的正确值。
private void datagridview1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
if (cmbCombo != null)
DataRowView oDataRowView = cmbCombo.SelectedItem as DataRowView;
string sValue = string.Empty;
if (oDataRowView != null)
sValue = oDataRowView.Row["ValueMemberID"] as string;
datagridview1[e.ColumnIndex, e.RowIndex].Tag = sValue;
【讨论】:
以上是关于c# 获取 DatagridviewComboBoxCell 的选定值的主要内容,如果未能解决你的问题,请参考以下文章