如何在C#中将组合框的所选项目获取为字符串变量

60

请问有人可以告诉我如何将 ComboBox 中选定的项目获取为一个 string 变量吗?

string selected = cmbbox.SelectedItem.ToString();
MessageBox.Show(selected);

这使我在MessageBox中得到了System.Data.DataRowView

6个回答

100

试试这个:

string selected = this.ComboBox.GetItemText(this.ComboBox.SelectedItem);
MessageBox.Show(selected);

5
相较于 this.ComboBox.Text,是否有理由更喜欢使用这个? - Mike E
6
@Mike E:是的,有一个理由。ComboBox.Text获取或设置与此控件相关联的文本(与所选项没有任何关系):http://msdn.microsoft.com/de-de/library/system.windows.forms.combobox.text%28v=vs.110%29.aspx - Leo Chapiro
1
关于 ComboBox.Text 属性,根据微软文档所述:“当前选定项的字符串。” - Simple
2
@简单的微软文档往往是错误和误导性的微软文档。 将此放入SelectionChanged回调中,SelectedIndex和SelectedItem将反映更改。文本不会。 - Paul Childs

17

2023更新...

您可以按以下方式使用:

string selected = comboBox.selectedItem.ToString();
或者
string selected = comboBox.SelectedText;

10

测试 this

  var selected = this.ComboBox.GetItemText(this.ComboBox.SelectedItem);
  MessageBox.Show(selected);

0
var selected = cmbbox.GetItemText(cmbbox.Text);
MessageBox.Show(selected);

1
为什么要使用 Text 属性而不是 SelectedItem,就像被接受的答案中所述? - Lance U. Matthews
这对我起作用了,我想这可能是个人偏好的问题。我无法得到与被接受的答案相同的结果。 - Benny Cruger

0
这也可以运行: CombBoxItem comboBoxItem = comboBox.SelectedItem as ComboBoxItem string text = comboBoxItem.content.ToString();

-3
SelectedText = this.combobox.SelectionBoxItem.ToString();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接