【问题标题】:C#: Set ComboBox HeightC#:设置组合框高度
【发布时间】:2011-02-02 11:07:06
【问题描述】:

我正在尝试在 C#.NET CF / WinCE6 中设置 ComboBox 的 Height。 到目前为止,我设法通过使用MessageWindow.SendMessage() 和CB_SETITEMHEIGHT 来做到这一点。问题是 ComboBox 在被点击时会到达其初始 Height。

有解决办法吗?

LE:考虑到 ComboBox 可能存储 1k 个条目,这将如何影响性能?

谢谢。

【问题讨论】:

    标签: c# .net combobox height coldfusion


    【解决方案1】:

    要克服组合框高度的重置,您可以做的一件事是在计时器上设置您的 SendMessage 解决方案,例如每 250 毫秒或类似的时间。

    顺便说一句,您是在谈论 DropDownHeight 还是实际控件的高度?如果是后者,您实际上可以通过增加字体大小来调整它的大小。这就是组合框大小的关键所在,也是您在与它交互时失去该维度的原因。

    但是您计划在手持设备上的组合框中存储 1k 个条目是一个可用性问题。当可供选择的项目很少时,很难从组合框中的列表中挑选出一些东西。如果您将 1k 项放入列表中,您将迫使用户滚动,即使对于经验丰富的 Windows 用户来说,这也是一件非常困难的事情,因为滚动条的大小、触控笔和某些触摸屏的怪异性质那里。您应该考虑一个过滤过程,将组合框中的项目数量限制几个数量级。

    【讨论】:

    • 感谢您的回答。我说的是控件关闭时的大小。我只希望它与具有相同字体大小的 TextBox 具有相同的高度。顺便说一句:我已经实现了自动完成功能。
    • 是的。那很难。不幸的是,所有显示文本的控件都受字体大小控制,但具有不同大小的边框和略微不同的对齐方式。请注意,组合框是托管在另一个控件中的文本控件,它添加了一些边框“填充”。我唯一想到的是让它看起来更好,而不是对齐这些控件中的内容。例如文本框和组合框内文本的底线应该对齐。这看起来足够漂亮。试图强制一个大小是困难的。虽然您可能会查看第 3 方控件。
    • 非常感谢,Paul Sasik!唯一的问题是我的应用程序必须在各种尺寸的屏幕上运行。但是,您的解决方案可能是最好的(我只需要处理屏幕尺寸和重新定位)!
    • tks 关于更改组合框字体的提示,但这让我的 c# 表单看起来很有趣 :) 无论如何它都能以某种方式工作
    • 是的,这是一个 hack。我从来不喜欢如何将组合框的高度与其字体相结合。可能有表现更合理的第三方产品。
    猜你喜欢
    • 2012-06-22
    • 2023-03-30
    • 1970-01-01
    • 2011-03-10
    • 1970-01-01
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多