【问题标题】:How to design the UI for settings according to different options in C# WinForm?C# WinForm中如何根据不同的选项设计设置的UI?
【发布时间】:2009-08-21 07:16:05
【问题描述】:

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

我时不时会想到这个设计。一个简单的表格。在表格顶部,您有一个可供选择的选项列表。根据选择的不同选项,表单的主体会显示一个独特的设置细节面板。

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

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

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

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

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

    【讨论】:

    • 在我回到这里之前,我看到了你的博客。我认为主要思想是使用用户控制。实际上,使用用户控件的另一个好处是我可以将 UI 代码拆分到每个用户控件中。相比之下,如果我使用面板或 TabControls,我必须将所有面板的 UI 代码放在一个表单中,这不是很整洁。谢谢你的想法。
    【解决方案2】:

    我建议您为每个“设置详细信息”创建用户控件,当用户选择一个选项时,您会加载相应的用户控件。您可能需要调整表单大小,但因此您可以轻松管理 IDE 中的所有“设置详细信息”。

    【讨论】:

      【解决方案3】:

      使用用户控制是解决问题的好方法。但是您可能需要在面板中设置它们并使用属性“Visible”和“Dock”。

      您无需在设计模式下将它们停靠在“填充”处。您可以在运行时或需要时设置此属性。

      希望对您有所帮助。

      【讨论】:

      • 思路和罗杰的一样。既然他给了我一个例子,我就选择他的作为答案。但也非常感谢你。
      【解决方案4】:

      听起来你需要一些设计模式。

      为什么不创建一个 UI 工厂,根据需要/要求返回您的 UI 对象?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-02-21
        • 1970-01-01
        • 2021-06-24
        • 2020-02-12
        • 2010-10-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多