c# - 如何在 Windows 窗体中排列元素,如 Windows 资源管理器

Posted

技术标签:

【中文标题】c# - 如何在 Windows 窗体中排列元素,如 Windows 资源管理器【英文标题】:c# - How to arrange elements in WindowsForm like Windows Explorer 【发布时间】:2013-10-16 09:06:27 【问题描述】:

我正在填充一个自制的 Windows 资源管理器,它模拟 Microsoft Windows 资源管理器。这是我的 Windows 窗体的布局:

我想要的是:

但是当我最大化窗口时,它看起来像这样:

问题是treeView的宽度也增加了。如何阻止它?

有什么想法吗?我尝试了很多方法,但没有任何效果。

【问题讨论】:

【参考方案1】:

尝试在您已有的 groupboxsplitcontainer 周围添加第二个 splitcontainer。然后将底部的panel设置为固定面板。

【讨论】:

如何添加一个垂直的splitContainer,因为它是水平的,默认为2列? 感谢伙伴!我已经解决了 groupbox 问题,但 treeView 不是......你能再帮我一次吗? 您可以在属性中更改方向。我相信面板的数量是固定的,但您可以在一个面板中放置另一个拆分容器。 感谢伙伴!我已经解决了 groupbox 问题,但 treeView 不是......你能再帮我一次吗 您在使用树视图时遇到什么问题?【参考方案2】:

您可以设置SplitContainer.FixedPanel 属性来禁用其中一个面板的自动调整大小。这样,即使调整容器本身的大小,指定的面板也将保持相同的宽度/高度。

【讨论】:

【参考方案3】:

您可以使用锚定(每个控件在“属性”菜单中都有),然后选择您希望它“锚定”到的对象。这应该允许您的控件拉伸以适应表单。

它可能很繁琐,因此您必须锚定每个控件并考虑如何设置它。如果您增加表单的高度,EG 要使控件扩展,请单击顶部和底部的锚点。

【讨论】:

以上是关于c# - 如何在 Windows 窗体中排列元素,如 Windows 资源管理器的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 窗体 (C#) 中设置列​​表框的确切高度?

C# - 从线程更新 windows 窗体元素

C#如何在 Windows 窗体应用程序中使用事件

C# Windows 窗体半透明

C# - 如何在 DLL 中打开 Windows 窗体

如何在 C# windows 窗体中使用事件作为方法?