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

如何使用 C# 获取检查元素代码

C#怎样获取项目的debug路径

如何使用 c# 获取 Instagram 故事集锦?

C# 获取文件图标

C# 获取网页源码

获取 C# 类名称列表?