64

我正在构建一个字符串,代码看起来像

String status = "The status of my combobox is " + comboBoxTest.SelectedText

我在 VS2010 中使用 WinForm

结果看起来像

“我的组合框的状态是”

4

11 回答 11

110

我想你想用

String status = "The status of my combobox is " + comboBoxTest.Text

MSDN中的 SelectedText 属性

获取或设置在 ComboBox 的可编辑部分中选择的文本。

而来自MSDN的 Text 属性

获取或设置与此控件关联的文本。

于 2012-04-17T15:31:51.160 回答
19

文档中:

您可以使用 SelectedText 属性来检索或更改 ComboBox 控件中当前选定的文本。但是,您应该知道,由于用户交互,选择可能会自动更改。例如,如果您在按钮 Click 事件处理程序中检索 SelectedText 值,则该值将是一个空字符串。这是因为当输入焦点从组合框移动到按钮时,选择会自动清除。

当组合框失去焦点时,选择点会移动到文本的开头,并且任何选定的文本都将变为未选中状态。在这种情况下,获取 SelectedText 属性会检索一个空字符串,并设置 SelectedText 属性会将指定的值添加到文本的开头。

于 2012-04-17T15:33:19.010 回答
11

我在 5 分钟前遇到了这个问题。

我认为一个解决方案(使用visual studio 2005)是:

myString = comboBoxTest.GetItemText(comboBoxTest.SelectedItem);

如果我错了,请原谅我。

于 2016-01-01T14:47:32.813 回答
10

我认为你不需要SelectedText,但你可能需要

String status = "The status of my combobox is " + comboBoxTest.Text;
于 2012-04-17T15:31:35.733 回答
4

尝试这个:

String status = "The status of my combobox is " + comboBoxTest.text;

于 2013-05-14T12:13:30.673 回答
4

要获得选定的项目,您必须使用组合框的 SELECTEDITEM 属性。由于这是一个对象,如果你想将它分配给一个字符串,你必须使用 ToString() 方法将它转换为字符串:

string myItem = comboBox1.SelectedItem.ToString(); //this does the trick
于 2012-04-17T16:22:29.600 回答
3

假设您想更改例如标签的文本,这就是我将如何解决这个问题

    private void comboBoxtest_SelectedIndexChanged(object sender, EventArgs e)
    {
        var combotext = comboBoxtest.Text;
        var status = "The status of my combo box is" + combotext;
        label1.Text = status;
    }
于 2012-04-17T15:49:25.577 回答
2

如果将 Combobox 绑定到 KeyValuePair 之类的东西,构造函数中的属性如下...:

 DataSource = dataSource,
 DisplayMember = "Value",
 ValueMember = "Key"

dataSourceKeyValuePair 类型也是如此...

你最终不得不这样做......

  string v = ((KeyValuePair)((ComboBox)c).SelectedItem).Value;

(我有一个动态表单 -c类型在哪里Control- 所以必须将它转换为 ComboBox)

于 2019-06-28T13:53:10.433 回答
2

之前的所有答案都解释了 OP“应该”做什么。我正在解释.SelectedText属性是什么。

.SelectedText属性不是combobox. 它是突出显示的文本。.SelectedText它与a 的属性相同textbox

下图显示该.SelectedText属性将等于“ort”。

在此处输入图像描述

于 2020-02-17T22:03:10.313 回答
1

如果您只想知道ComboBox带有可编辑文本框(或ComboBoxStyle.DropDown样式)的文本,可以使用:

string str = comboBox.SelectedItem != null ?
                      comboBox.GetItemText(comboBox.SelectedItem) : comboBox.Text;
于 2021-07-30T00:20:10.410 回答
-2

或试试这个代码

 String status = "The status of my combobox is " + comboBoxTest.SelectedItem.ToString();
于 2012-04-17T15:37:28.103 回答