如何获取Datagridview Combobox的TEXT选项?

时间:2012-11-16 14:15:25

标签: c# winforms datagridview combobox selectedtext

如何在DataGridView中获取Combobox所选项文本? 我尝试使用以下代码:

dataGridView1.Rows[1].Cells[1].Value.ToString()

但是,这会给出与此单元格关联的值,而不是Combobox选定的项目文本。 我也试过这个:

DataGridViewComboBoxCell cell = dataGridView1[1,1] as DataGridViewComboBoxCell;
string value = cell.Value.ToString();

但是,这也没有帮助。

感谢您的帮助。提前谢谢!

编辑:

假设我们有一个Combobox文本为NoYes,值分别为0和1。当Combobox发生变化时,我想要的是文本YesNo。但我得到的是使用上述代码的值0/1。希望能让事情变得清晰。

更新

好的,所以我一直在研究这个问题,在经过大量的努力并在其他成员的帮助下,我已经能够解决问题并获得所需的解决方案:

以下是解决方案:

string SelectedText = Convert.ToString(dataGridView1.Rows[0].Cells[1].FormattedValue.ToString());

5 个答案:

答案 0 :(得分:15)

要在DataGridView中获取Combobox的选定值和所选文本,请尝试以下代码

string SelectedText = Convert.ToString((DataGridView1.Rows[0].Cells["dgcombocell"] as DataGridViewComboBoxCell).FormattedValue.ToString());
int SelectedVal = Convert.ToInt32(DataGridView1.Rows[0].Cells["dgcombocell"].Value);

答案 1 :(得分:3)

我设法通过这种方式将字符串值拉出单元格:

DataGridViewComboBoxCell dgvcmbcell = dataGridView1[1, 0] as DataGridViewComboBoxCell;
String text = dgvcmbcell.EditedFormattedValue.ToString();

最简单的解决方法是使用调试器并查看dgvcmdcell对象。在这里你会发现可扩展节点“base”。展开它,只需浏览它,您就会找到所需的任何信息。

答案 2 :(得分:0)

要访问datagridview中当前选定的文本,您需要引用Combobox列的CurrencyManagerCurrencyManager与金钱无关,而是管理列与其数据源之间的绑定。 CurrencyManager可以告诉您组合框的当前选择是什么。

代码:

    CurrencyManager cm = (CurrencyManager)DataGridView1.BindingContext[((System.Windows.Forms.DataGridViewComboBoxColumn)DataGridView1.Columns[0]).DataSource];

注意:没有必要将列强制转换为组合框,我只是为了向您展示我传入的列。我使用索引0但使用索引是实际的索引你的组合框柱。

现在使用货币管理器,您可以访问该列的当前数据网格选择(因为那是您传入的列)。

    cm.Current; //returns the current selection whatever that is

所以在我的例子中,组合框列的数据源是一个名为Choice的类,选择如下:

    public class Choice
    {
            public string Text
            {
                get;
                set;
            }
    }

当我访问cm.Current属性时,它将返回选择类的实例,现在我可以访问我的选择类的 Text 属性以查看选择了什么值。您显然必须根据您的具体情况进行调整。我希望这会有所帮助。

答案 3 :(得分:0)

也可以尝试以下方法:

DataGridView.CurrentRow.Cells(Column.name).EditedFormattedValue.ToString()

EditedFormattedValue对象给出DataGridView中单元格的当前格式值,而不管单元格是在编辑状态还是在编辑模式下。捕获ComboBox的选择或DataGridView中单元格的任何值都更加方便。

答案 4 :(得分:-1)

你可以试试这个: -

dataGridView1.CurrentRow.Cells[0].Value.ToString();

索引您需要查看的单元格的列,以ComboBoxColumn的索引为准。

相关问题