【问题标题】:C# System.Windows.Forms.ComboBox Text does not update after a selection changeC# System.Windows.Forms.ComboBox 文本在选择更改后不更新
【发布时间】:2015-01-25 04:37:41
【问题描述】:

我在 C# 中使用了一个简单的 ComboBox。我输入了 3 个项目:“apple”、“banana”和“orange”。这是我的工作:

  1. 单击组合框以查看下拉菜单。我看到所有 3 个项目都很好。然后我通过鼠标左键单击选择“香蕉”
  2. comboBox 现在显示“香蕉”,目前为止是正确的
  3. 现在我再次单击组合框以查看下拉菜单。我移动鼠标以突出显示“橙色”。然后我按 TAB 键移出组合框
  4. 组合框仍显示“香蕉”
  5. 但是,当我获得 selectedItem 时,它是“橙色”

这是预期的行为吗?如果我突出显示“橙色”并标记出来,我希望:

  1. selectedItem 应该保持不变(意味着 tab out 不会触发选择更改)或者...
  2. 组合框应显示“橙色”,因为选择已更改

我通过使用comboBox.Leave 事件处理程序将文本字段手动设置为selectedItem 来克服这个问题,但是,我想知道我是否在这里遗漏了一些基本概念。

如果选择发生变化,comboBox.Text 应该在没有任何人工干预的情况下反映这一点似乎是合乎逻辑的?

【问题讨论】:

  • 你能发布你的代码吗?
  • 如果列表使用 DropDownList 样式,则不会发生这种情况。

标签: c# winforms combobox selecteditem


【解决方案1】:

我相信你已经猜对了。在组合框中,选定项不必与文本相同。这允许在组合框的文本中输入非项目。您可以忽略 SelectedItem 并使用文本字段。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 2017-03-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多