【问题标题】:Auto-size controls in .NET CF to avoid horizontal scrolling?.NET CF 中的自动调整大小控件以避免水平滚动?
【发布时间】:2010-10-04 08:41:01
【问题描述】:
我正在 .NET Compact Framework 中开发一个表单,它承载可变数量的控件。每个控件都应与窗体具有相同的宽度。当只有几个控件时,不会出现垂直滚动条。当控件的数量超出一个表单的容量时,会出现一个垂直滚动条。然后应该修改控件的宽度,以便不会出现水平滚动条。
实现这一目标的最佳方法是什么?我对适用于所有平台/屏幕尺寸并且可以支持屏幕方向更改的解决方案感兴趣。
【问题讨论】:
标签:
winforms
windows-mobile
compact-framework
scrollbar
【解决方案1】:
如果我做对了,在某一时刻,垂直和水平滚动条都会出现,而您只需要垂直滚动条吗?将每个控件的Anchor设置为“Top|Left|Right”不就自动解决了这个问题吗?
【解决方案2】:
如果每个控件都与窗体的宽度相同,为什么不将每个控件停靠到顶部(或底部)?然后它会为你调整大小。但是它可能看起来不太吸引人,所以我建议添加一些空面板(以相同的方式停靠)用作垂直间隔。
【解决方案3】:
我做了一些快速测试,看起来,当您添加控件时,当添加的控件触发 scollbars 以使其可见时,面板会引发 resize 事件。烦人的部分是在启动过程中触发了几次调整大小事件:(
但是知道紧凑的框架,这可能是您处理这个问题的最佳选择。
通常在完整框架上,如果 DisplayRectangle 大于面板的大小,则可以,但 cf 上不存在这样的东西。
希望这对你有所帮助,我会看看早上能不能找到更多。