调整停靠在面板控件中的用户控件的大小不会调整面板控件的大小-更好的解决方案
本文关键字:控件 调整 更好 解决方案 用户 停靠 | 更新日期: 2023-09-27 17:59:56
我有一个用户控件,它有两个大小选项(用户控件中有一个按钮,用于在两个选项之间切换)-类似于section-折叠/展开。
此用户控件被放置在面板控件上,并停靠以填充它。
我需要根据用户控件的大小重新调整此面板的大小。我预计它会自动发生,因为用户控件被Docked来填充Panel,但Panel的SizeChanged
事件没有被触发。
因此,我的解决方案是在容器形式中为用户控件和事件处理程序设置一个事件SizeChanged
,从而相应地调整Panel的大小。
但这难道不应该自动工作吗(正如我上面提到的)?如果不是,那么为什么对用户控件大小的更改不会触发容器控件的SizeChanged
事件?
好吧,你不想要Dock,因为这会迫使控件的大小与面板大小相匹配。若要以其他方式执行此操作,需要将面板的AutoSize属性设置为True,将AutoSizeMode设置为GrowAndShrink。使用"填充"或控件的"边距"进行调整,使面板变大一点。
请记住,不断变化的面板大小往往会给窗口的其他部分带来更多的布局问题,这些东西可能不得不移开以提供空间。FlowLayoutPanel往往是下一个选择。或者当自动布局无法再处理时,面板的SizeChanged事件。