C# 从底部调整大小时,是否防止Windows窗体元素离开视图?
我有一个表格,如下图所示。表单只包含一个SplitContainer,每个面板中有两个TreeView,再加上TreeView上方的标签 以下是尚未调整大小的表单图片:C# 从底部调整大小时,是否防止Windows窗体元素离开视图?,c#,winforms,resize,treeview,splitcontainer,C#,Winforms,Resize,Treeview,Splitcontainer,我有一个表格,如下图所示。表单只包含一个SplitContainer,每个面板中有两个TreeView,再加上TreeView上方的标签 以下是尚未调整大小的表单图片: 每个TreeView都固定在顶部和左侧,并停靠在底部。 每个标签都固定在顶部和左侧。 SplitContainer锚定在底部、左侧和右侧 上述设置允许我在调整窗体大小时同样调整TreeView的大小。但是,当我调整表单高度时,标签(当然还有TreeView)会被推出表单视图,如图所示: 如何防止元素被推过标题栏?最好不使用S
每个TreeView都固定在顶部和左侧,并停靠在底部。 每个标签都固定在顶部和左侧。 SplitContainer锚定在底部、左侧和右侧 上述设置允许我在调整窗体大小时同样调整TreeView的大小。但是,当我调整表单高度时,标签(当然还有TreeView)会被推出表单视图,如图所示:
如何防止元素被推过标题栏?最好不使用SizeChanged事件。我尝试过在表单中添加填充,以及尝试不同的停靠/锚定模式,但我无法对此进行限制。设置SplitContainer.Dock=DockStyle.Fill;如果这是表单上唯一显示的内容。按顺序执行以下步骤:
SplitContainer
锚定到所有四个侧面,或将其停靠填充Dock
属性设置为Top
TreeViews
放在面板上。重要的是,这是在您放置和停靠标签后完成的!同样的道理:使它们比面板小。然后将其Dock
属性设置为Fill
Dock
不是None
,则忽略Anchor
属性。锚定边与锚定到的边保持恒定距离。如果未定位边,此方向上控件的大小将保持不变。如果两条对应的边(例如左侧和右侧)未定位,则控件将在此方向居中
请参阅:您的拆分容器也必须锚定到顶部。@LarsTech这可以防止标签在表单上方移动,但无法防止TreeView。如果TreeView位于拆分容器中,则必须将其停靠。这并不能防止问题的发生。我也有同样的问题,标签被阻止在标题栏上方移动,但不是TreeView。您的拆分容器和视图。。。在SplitContainer的每一侧放置一个面板,并将其停靠在顶部。根据需要调整高度,并将包含标题的标签放置在这些面板上。面板“停靠”到顶部后,您现在可以将填充树视图停靠到每个拆分容器侧面。现在使用SplitContainer.Dock=Fill,应该可以了。如果标签在splitContainer外部,则是-您将遇到问题-执行上述操作将简单地将标题移动到splitContainer内部,但更重要的是-使用面板,允许TreeView正确停靠。