如何获取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文本为No
和Yes
,值分别为0和1。 当我想改变时,我想要的是文本Yes
或No
。 但我得到的是使用上述代码的值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
的索引为准。