【问题标题】:Winforms ComboBox does not expand when clicked, any ideas?单击时 Winforms ComboBox 不会展开,有什么想法吗?
【发布时间】:2010-03-21 16:23:48
【问题描述】:

单击时不会打开表单(模式对话框)中的组合框,但是可以使用向上/向下箭头键选择项目。 单击另一个窗口并返回对话框后,组合框按预期工作,即单击时展开。

奇怪...任何想法可能导致这种行为?

提前非常感谢, 彼得

编辑: Combobox 由编译时创建,但由运行时填充。

使 Combobox 无效并包含 Form 没有帮助。

按照 Henk 的建议,我尝试使用设计器添加一个新的 Combobox,结果与现有 Combobox 的代码完全相同。新的组合框在为空时工作正常,但一旦以编程方式设置数据源就会采取奇怪的行为......这就是我正在做的事情:

comboBox1.DataSource = langs;
comboBox1.DisplayMember = "NativeName";
comboBox1.ValueMember = "Name";

langs 是一个 List<CultureInfo> 有两个条目)

嗯。如果我用任意两个项目(例如“A”、“B”)预设 Items 属性,一切正常......嗯?这对我有用,但似乎很奇怪。这是一个错误吗? (不,不是真的,我的误解)

【问题讨论】:

  • 跟进:在哪里你设置DataSource?也许在 OnActivate 中?
  • 这里的标准诊断是 Control.Capture 的问题。捕获鼠标后,您需要单击两次。第一次单击取消捕获。您的帖子中完全不清楚为什么会捕获它。
  • @nobugz:不,这不是点击两次的问题。单击后组合框会聚焦(我可以使用箭头键选择),但只要我没有将另一个元素聚焦在中间,它就不会打开。

标签: c# .net winforms combobox


【解决方案1】:

也许像 OnClick 这样的事件已实现,将 e.handled 设置为 true?

另外,如何插入组合框、运行时或编译时?如果是运行时,也许你错过了什么?

【讨论】:

  • 感谢您的建议。不,任何事件都没有附加任何内容,只有 OnClick 用于确定按钮。组合框由编译时插入(#develop 设计器),但由运行时填充。
  • 顺便说一句。只是在更新数据源后尝试失效,但这没有帮助:(
【解决方案2】:

将组合框的 TabIndex 从 1 更改为 3 就可以了。不要问我为什么... :-/

【讨论】:

    【解决方案3】:

    您是否尝试过在设计器中拖动组合框的下拉区域?

    【讨论】:

      【解决方案4】:

      我遇到了这个确切的问题。我错误地将所有选项设置为 style="display:none"。这并不明显,因为所选选项仍显示在组合框中,并且我可以使用箭头键导航组合框选项,但就像彼得描述的那样,单击下拉箭头没有任何效果。 在我从选项中删除 display:none 后,它可以正常工作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-01
        • 2011-05-29
        • 2019-03-23
        • 2018-05-19
        • 2011-09-25
        • 1970-01-01
        • 2019-03-05
        • 1970-01-01
        相关资源
        最近更新 更多