C# ComboBox.SelectedText不';Don’不要给我所选的文字

C# ComboBox.SelectedText不';Don’不要给我所选的文字,c#,winforms,string,combobox,C#,Winforms,String,Combobox,我正在构建一个字符串,代码如下所示 String status = "The status of my combobox is " + comboBoxTest.SelectedText 我正在VS2010中使用WinForm 结果看起来像 String status = "The status of my combobox is " + comboBoxTest.SelectedText “我的组合框的状态为” 我想您不需要SelectedText,但您可能需要 String status

我正在构建一个字符串,代码如下所示

String status = "The status of my combobox is " + comboBoxTest.SelectedText
我正在VS2010中使用WinForm

结果看起来像

String status = "The status of my combobox is " + comboBoxTest.SelectedText
“我的组合框的状态为”


我想您不需要
SelectedText
,但您可能需要

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

我想你想用

String status = "The status of my combobox is " + comboBoxTest.Text
已从中选择文本属性

获取或设置在文档的可编辑部分中选择的文本 组合框

而文本属性来自

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

从:

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

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

或者试试这个代码

 String status = "The status of my combobox is " + comboBoxTest.SelectedItem.ToString();

下面是我如何处理这个问题的,假设您想要更改标签的文本

    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;
    }

要获取所选项目,必须使用comboBox的SELECTEDITEM属性。由于这是一个对象,如果要将其分配给字符串,必须使用ToString()方法将其转换为字符串:

试试这个:


String status=“我的组合框的状态是”+comboBoxTest.text

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

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


如果我错了,请原谅。

如果您将组合框绑定到类似KeyValuePair的东西,并且构造函数中的属性类似于…:

 DataSource = dataSource,
 DisplayMember = "Value",
 ValueMember = "Key"
因此,
dataSource
属于KeyValuePair类型

你最终不得不这么做

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

(我有一个动态表单,
c
属于
Control
,因此必须将其转换为ComboBox)

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

.SelectedText
属性不是组合框中的文本。突出显示的是文本。它与
相同。为
文本框
选择文本
属性

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


这与comboBoxTest有什么不同。SelectedItem.ToString()@CoCoLoadev:SelectedItem是一个对象,也可能是一个类,因此您不需要将其转换为字符串。当您填充组合框时,您可以将项设置为类,因此在SelectedItem上,您可以随心所欲…SelectedItem用于与组合框关联的某种绑定(数据源)。它将是一个对象,但可以强制转换为组合框绑定到的基础数据(对象)类型。否,SelectedItem是与当前选定项关联的对象,它可以是类,而不必是字符串!!!当焦点离开时,ComboBox控件将丢失选择。正是这样!当我们为数据源设置一个类时,获取它的文本是一个常见的问题,这对我来说已经解决了
  string v = ((KeyValuePair)((ComboBox)c).SelectedItem).Value;