【问题标题】:Combo box not showing items when it has focus组合框有焦点时不显示项目
【发布时间】:2014-08-20 19:31:37
【问题描述】:

我在 winform 上有 2 个组合框,它们都通过设计器拖到表面上,都从数据库中获取它们的项目,都很好地连接到 dbase 并正确填充。但是其中之一,当它具有焦点时,所选项目不可见;所有可以看到的是蓝色背景突出显示。我已经比较了两者的属性,无法辨别任何不同的设置,这可能会导致这种情况。当组合框失去焦点时,将显示所选项目,如预期的那样,白色背景上的黑色前景。

【问题讨论】:

  • 删除一个并替换它,看看问题是否仍然存在。
  • 我已经这样做了,它仍然存在。
  • 另外,给你的新组合框起一个新名字。原因可以在设计器生成的代码中找到。
  • 当然不是你自己画的?当您单击文本以取消选择内容时,它又是黑底白字了?如果你再按Ctrl-A重新选择??蓝底蓝?此外,当您按 Ctrl-C 时,文本是否会被复制?
  • ctrl-A 似乎没有效果 Ctrl-C 复制文本。导致我出现问题的盒子我已删除,然后用不同的名称放了另一个盒子。虽然我没有在删除后立即清理和重建。

标签: c# winforms combobox


【解决方案1】:

查看显示成员中的数据。这可能以空格/空格结尾。 当使用 SQL 数据库中的数据集填充组合框时,我遇到了同样的问题。 更改 select 语句以删除前导和尾随空格后,它按预期工作。

对我的解释: 编辑/获得焦点时,组合框在反向视频中右对齐显示文本。如果文本以大量空格结尾,就像 SQL 数据库中的固定长度字段在末尾用空格填充一样,结果是它在值的末尾显示空格(右对齐)。如果删除选择查询中的空格(在 MSSQL 中,这是由 ltrim(rtrim()) 完成的,因为所选项目的文本最后没有用空格填充,因此它显示文本(反向视频)直到失去焦点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多