如何在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。当Combobox发生变化时,我想要的是文本Yes
或No
。但我得到的是使用上述代码的值0/1。希望能让事情变得清晰。
更新
好的,所以我一直在研究这个问题,在经过大量的努力并在其他成员的帮助下,我已经能够解决问题并获得所需的解决方案:
以下是解决方案:
string SelectedText = Convert.ToString(dataGridView1.Rows[0].Cells[1].FormattedValue.ToString());
答案 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列的CurrencyManager。 CurrencyManager与金钱无关,而是管理列与其数据源之间的绑定。 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
的索引为准。