1

我使用 VS2008 C# + Windows 窗体。我不明白为什么 comboBox 不按应有的方式行事。在设计模式下,我在表单中添加了一个组合框,并编辑项目以添加“A”和“B”。双击将我带到 SelectedIndexChanged 事件,我对其进行编辑以使用 MessageBox 显示选定的文本。

private void comboBoxImageSet_SelectedIndexChanged(object sender, EventArgs e)
{
    MessageBox.Show(comboBoxImageSet.SelectedText);
}

当我运行并在组合框中选择“A”或“B”时,会出现消息框,但没有写入任何内容。为什么?

谢谢。

4

4 回答 4

3

ComboBox这里是控件的选择属性之间的差异。

  1. 选定索引
  2. 选定项
  3. 选定文本
  4. 选定值

物业SelectedIndex

获取或设置指定当前选定项的索引。

简单地表示选择列表中所选项目的索引。(提供的信息仅供您参考。=))


物业SelectedItem

获取或设置ComboBox.

SelectedItem表示当前根据 的选择ListControl的元素ComboBox这就是为什么这是你想用它来回答你的问题。


物业SelectedText

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

也就是说,当您编辑 的TextBox部分时ComboBox,可能会在您输入进行编辑时选择的文本,或任何其他类型的文本选择。这确实包括ListControl通过ComboBox. 例如,如果您的ComboBox.DropDownStyle属性设置为ComboBoxStyle.DropDownList,那么您将永远无法在ComboBox. 尽管如此,您仍可以在其列表中选择另一个项目。这就是为什么它不是为您的目的服务的正确财产。


物业SelectedValue

获取或设置属性指定的成员属性的值ValueMember

仅在使用 DataBinding 时与DisplayMember属性结合使用。例如,当你想显示一个客户的名字,并通过他的数据库 ID 选择他,那么DisplayMember应该显示客户的名字和ValueMemberID。这样,当您选择一个客户时,SelectedValue更改并引发SelectedValueChangedListControl. (提供的信息仅供您参考。=))


于 2010-05-28T19:04:16.243 回答
2

SelectedText 属性返回组合框中标记的文本,而不是选定项。如果组合框是可编辑的,您可以标记文本的一部分,SelectedText 属性将返回标记的文本。看这里

您感兴趣的是SelectedItem属性或SelectedValue属性。

于 2010-05-28T18:18:15.730 回答
1

ComboBox.SelectedText

表示组合框中当前选定文本的字符串。如果 DropDownStyle 设置为DropDownList,则返回值为空字符串 ("")。

使用 SelectedItem 而不是 SelectedText

于 2010-05-28T18:18:55.623 回答
0

选定文本

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

也就是说,它获取当前标记的文本。

你想用SelectedItem.ToString().

于 2010-05-28T18:15:21.730 回答