【发布时间】:2013-03-21 16:17:20
【问题描述】:
我有一个 winform 用户控件,它有一个面板,其中包含一些 TableLayout(还有一些其他用户控件)。
我所有的组件都有Dock=Fill 和Autosize=True 属性。
目前,当我调整窗口大小时,我没有任何滚动条,溢出只是没有显示。
我发现,如果我将面板的 AutoScrollMinSize 设置为某个值,当我达到设定的大小时,就会出现那些滚动条。
我的问题是我在运行时添加/删除元素,而且我还根据配置显示或不显示一些内容。所以对我来说,很难在这里硬编码一个值,要么我滚动条太早,要么太晚。
我确定应该有一种方法可以配置我的userControl,而不必自己计算大小,让组件显示滚动条,当孩子的内容无法显示时,你知道怎么做吗?
谢谢!
【问题讨论】:
-
计算大小是这样做的,这并不难。一般来说,要避免将大量时间用于使 UI 在用户永远不会使用的模式下可用,因为它变得太麻烦了。确保它可以在没有滚动条的 1024x768 窗口大小中使用。使其在较小时仍可操作的一种简单方法是使表单可滚动。将其 AutoScroll 属性设置为 True 并将 AutoScrollMinSize 设置为足够大以显示 TLP。
-
这不是我要问的。我对与他的业务相关的客户有限制。例如,如果他们是管理员,宽度可以是 1000 或 1300 个参数,他们希望这样
-
是的,我会买那个。它是 1024 和 1366,常用的屏幕宽度。有一个确切知道他想要什么的客户总是很高兴。你最好开始它并重新设计你的布局,使它们适合这些屏幕尺寸,而不需要水平滚动条。