c# - C# WinForm中如何根据不同选项设计设置UI?

标签 c# .net winforms

这是一个.NET winform应用程序问题。

我时常会想到这个设计。一个简单的表格。在表格顶部有一个可供选择的选项列表。根据选择的不同选项,表单正文显示一个独特的设置详细信息面板。

如何在Visual Studio中整齐地设计这个UI?我有两个想法。第一个想法是有很多面板,每个面板都包含设置控件。在运行时,隐藏除根据选项选择的面板之外的所有面板。在这个解决方案中,很难在VS设计器中组织表单的控件。您需要将表单设置得很大以容纳所有面板。面板彼此相邻放置。有很多运行时加载代码需要编写。例如,加载表单时,需要隐藏面板、重置表单大小等。当您选择一个选项时,您需要重新定位面板并显示/隐藏它们。乏味!

第二个想法是使用 TabControl。 TabControl 很好,因为选项卡为您组织得很好。您无需重新定位面板并调整表单大小。您在运行时所需要做的就是根据选项选择正确的选项卡。一件事,您需要向用户隐藏 TabControl 的部分内容,因为它毕竟不是真正的 TabControl。隐藏TabControl的选项卡按钮并不难,但我发现隐藏选项卡区域和表单上的以下部分之间总是有很大的间隙。

有人有设计 UI 的好方法吗?也许不使用面板或 TabControls,而是使用一些更智能的方法?如果大部分时间都使用TabControl,如何隐藏和显示TabControl的选项卡部分以及如何设置TabControl的边距和边框大小不存在太大间隙?非常感谢您的回答和建议。

最佳答案

当我需要这样做时,我将每组控件放入其自己的 UserControl 中,然后我可以使用其他东西在它们之间切换。例如,参见Implementing a paged Options dialog在我的博客上。

关于c# - C# WinForm中如何根据不同选项设计设置UI?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1310437/

相关文章:

.net - 在 Unity 容器中注销实例

c# - 从 DataGridView 和数据库中删除行

c# - 在 C# Windows 应用程序中设置 Datagrid 的单元格宽度

c# - 类型名称 XXXX 在类型 XXXX 中不存在

c# - 为什么 Reverse() 不能转换成 SQL?

c# - 在程序执行期间将只读数据库表保存在局部变量中

c# - 自动使基构造函数在派生类中可用?

c# - selectPDF 不从 HTML 字符串保存 PDF

c# - 没有强名称的 .NET 程序集是否可以防止意外损坏?

C# winforms : graphics. DrawImage 问题