【问题标题】:Wizard-like layering of different panels or different form windows for each view/panel?每个视图/面板的不同面板或不同窗体窗口的向导式分层?
【发布时间】:2015-12-06 02:47:03
【问题描述】:

我必须制作面板来查看我的应用程序中的不同任务/活动。现在,我只需要一个关于哪种技术更可取的建议,像向导一样制作面板层,还是简单地为每个面板制作不同的窗体窗口?

【问题讨论】:

    标签: .net winforms panel desktop-application wizard


    【解决方案1】:

    有许多不同的选项可以满足这种要求。
    作为一个选项,您可以实现一个选项卡式窗口:

    • 使用TabControl,它将在每个TabPage 中托管不同的表单
    • 对于需要在选项卡式窗口中显示的每个视图,创建Form,将表单的TopLevel 属性设置为false,将BorderStyle 设置为None
    • 当您想要显示表单时,将TabPage 添加到您的TabControl,然后将表单添加到TabPage,然后再添加Show 表单

    【讨论】:

    • 我已经知道 TabControl 的工作原理了。但我不想使用它们。因为我需要类似向导的功能(比如像安装向导一样从一个页面导航到另一个页面)。一些人建议在运行时隐藏选项卡以使它们在设计器中可见。但这不是一个好主意IMO,因为标签仍然保留它们的空间,它们只会被隐藏。当他们是实现相同功能的更好解决方案时,为什么有人会使用带有隐藏标签标题的标签。
    • 对不起,迟到的评论。其实我在等其他答案。
    • @user3357779 我的提议是一个选项卡式窗口,例如 IE。无论如何,您可以使用向导控件。搜索“windows forms wizard control”并查看 codeplex 和 codeproject 结果。希望对您有所帮助:)
    【解决方案2】:

    一种选择是为每个面板创建一个UserControl

    优点:

    • 维护父窗体要容易得多,因为 UserControl 独立于父窗体。
    • 在移动布局时不会意外更改布局 父窗体。
    • 您可以将该面板的代码与父表单的代码分开。

    (还有其他好处,但我的大脑似乎已经停止了。)

    缺点:

    • 需要更多代码,因为您需要添加 public UserControl 的属性,以便它包含的信息是 可访问父窗体。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-22
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      • 2017-11-01
      相关资源
      最近更新 更多