如何获取Datagridview Combobox的TEXT选项?

如何获取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。 当我想改变时,我想要的是文本YesNo 。 但我得到的是使用上述代码的值0/1。 希望能让事情变得清晰。

更新:

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

这是解决方案:

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

要在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); 

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

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

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

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

代码:

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

注意:没有必要将列转换为combobox,我只是这样做以显示我传入的列。我使用索引0但使用任何索引是combobox列的实际索引。

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

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

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

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

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

你可以尝试这个: –

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

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