【发布时间】:2016-03-27 04:02:45
【问题描述】:
我正在做我的学校项目,Windows 窗体应用程序。
如您所见,我创建了 3 个面板,一个用于标题,一个用于导航栏,一个用于内容。我可以将标题和导航栏设为静态,如网页中的布局,并在 btn 点击时更改内容。
我创建了几个面板,并更改每个面板的可见性(真/假)以显示特定的面板。有没有更好的方法来做这个,我认为它必须更优雅,我是初学者,它的学校项目,我正在寻找聪明的答案。
【问题讨论】:
我正在做我的学校项目,Windows 窗体应用程序。
如您所见,我创建了 3 个面板,一个用于标题,一个用于导航栏,一个用于内容。我可以将标题和导航栏设为静态,如网页中的布局,并在 btn 点击时更改内容。
我创建了几个面板,并更改每个面板的可见性(真/假)以显示特定的面板。有没有更好的方法来做这个,我认为它必须更优雅,我是初学者,它的学校项目,我正在寻找聪明的答案。
【问题讨论】:
在 Windows 窗体中创建这样的布局当然有很多选择。在这里我分享一些垂直菜单、中心容器和内容持有者的好选择。
垂直菜单
您有很多选择,包括这 2 个不错的选择:
ToolStrip 组件,其 Dock 属性设置为 Left。菜单项也可以有图像,您可以设置在文本之前或文本上方显示图像。您可以在单击时选中一项并取消选中其他项。这样一来,哪个是活动菜单就很明显了。 Panel 控件包含一些 RadioButton 控件。面板的Dock 属性设置为Left,它包含一些RadionButton 控件,您将其Appearance 设置为Button,并将它们的Dock 属性设置为Top。您可以将单选按钮的FlatAppearance 设置为System 或Flat。单选按钮也可以在文本之前或之上显示图像。中心容器
您可以使用Panel 作为容器。将容器面板的Dock属性设置为Fill。
内容持有者
像菜单一样,您有很多选择,包括这两个不错的选择:
您可以使用不同的TabPages 或TabControl 作为内容持有者。将不同的内容放在控件的不同选项卡中。您可以隐藏选项卡标题,也可以禁用在选项卡之间导航的快捷键。然后根据选定的菜单设置控件的选定选项卡就足够了。
您可以使用不同的Forms 作为内容持有者。将不同的内容以不同的形式呈现。然后您可以根据所选菜单在内容面板中显示一个表单。要在内容面板中显示表单,只需将表单的 TopLevel 属性设置为 false 并将其中的 FormBorderStyle 设置为 None 并将它们添加到中心容器控件集合并显示表单即可。您可以根据所选菜单显示和隐藏表单。
【讨论】:
您可以使用FlowLayoutPanel 代替Panel,然后只需向其中添加菜单项块。
如果考虑到 FlowLayoutPanel 的宽度,你给菜单项适当的宽度,你会得到你想要的菜单。
【讨论】: