C#将每个面板放在单独的视图中

C#将每个面板放在单独的视图中,c#,panel,C#,Panel,我想知道如何在应用程序中调整我的观点。让我解释一下 而不是构建我的视图并在一个屏幕中添加所有组件。我想说的是,将每个面板放在它自己的类/形式中,然后有一个主形式,我可以在其中添加和删除这些“模块化”面板 这可能吗?我该怎么做呢?这肯定是可能的。我将使用WinForms,但WPF中也有类似的方法,如框架 在WinForms中,您可以为每个“模块化”面板创建一个新的用户控件,该控件将自动创建.cs和.designer.cs文件,就像在普通表单中一样。然后,您可以将逻辑和功能添加到面板中,就像它们本身

我想知道如何在应用程序中调整我的观点。让我解释一下

而不是构建我的视图并在一个屏幕中添加所有组件。我想说的是,将每个面板放在它自己的类/形式中,然后有一个主形式,我可以在其中添加和删除这些“模块化”面板


这可能吗?我该怎么做呢?

这肯定是可能的。我将使用WinForms,但WPF中也有类似的方法,如框架

在WinForms中,您可以为每个“模块化”面板创建一个新的用户控件,该控件将自动创建
.cs
.designer.cs
文件,就像在普通
表单中一样。然后,您可以将逻辑和功能添加到面板中,就像它们本身就是表单一样。剩下的就是将逻辑添加到表单中,以便在启动时加载默认面板,并考虑如何查看其他面板(例如,下一步按钮或在选项卡控件的每个选项卡上都有一个面板)。通过创建所需面板的实例并将其添加到表单/控件的
控件
属性,可以在表单(或任何其他用户控件)中显示面板,如下所示:

 public Form1()
 {
     InitializeComponent();
     MyPanel panel = new MyPanel();
     this.Controls.Add(panel);
 }

这是绝对可能的。我将使用WinForms,但WPF中也有类似的方法,如框架

在WinForms中,您可以为每个“模块化”面板创建一个新的用户控件,该控件将自动创建
.cs
.designer.cs
文件,就像在普通
表单中一样。然后,您可以将逻辑和功能添加到面板中,就像它们本身就是表单一样。剩下的就是将逻辑添加到表单中,以便在启动时加载默认面板,并考虑如何查看其他面板(例如,下一步按钮或在选项卡控件的每个选项卡上都有一个面板)。通过创建所需面板的实例并将其添加到表单/控件的
控件
属性,可以在表单(或任何其他用户控件)中显示面板,如下所示:

 public Form1()
 {
     InitializeComponent();
     MyPanel panel = new MyPanel();
     this.Controls.Add(panel);
 }

在Windows窗体中,有一个名为UserControl的空组件的概念,可以随时自由设计并添加到另一个组件或窗体容器中。为了创建灵活和可交换的UI,用户控件经常被使用。您可以在Visual Studio中创建如下所示的:

将新控件命名为:

之后,您可以设计UI控件:

完成设计后,编译项目/解决方案并转到要添加新设计控件的窗体。在工具栏面板中,您将看到新的UserControl,它可以通过拖放(使用鼠标)添加到表单中:

您可以创建任意数量的用户控件,并将它们添加到表单中或从表单中删除

所有这些步骤都可以在代码中完成。为了创建此类新视图,您需要创建一个继承预定义UserControl类的新类:

public class EditorUserControl : UserControl
{
}
每个控件元素都有一个控件,该控件保存/包含在显示UI时绘制的控件类型的组件。要将新控件添加到主面板,需要将其添加到控件集合:

public partial class EditorUserControl : UserControl
{
    public EditorUserControl()
    {
        var button = new Button();
        button.Text = "Import";
        this.Controls.Add(button);
    }
}
请注意,手动添加零部件时,您负责调整零部件的大小和位置。预定义的布局面板可以帮助您:

  • 等等
现在只剩下将新用户控件添加到主窗体,就像将UI元素添加到自己的控件一样:

var simpleEditor = new EditorUserControl();
simpleEditor.Dock = DockStyle.Fill;
this.Controls.Add(simpleEditor);
可以通过其预定义属性调整UI控件设置

您可以混合使用预定义的容器和用户控件,以实现所需的UI:

有很多关于C#和VS以及.NET的优秀初学者教程:


在Windows窗体中,有一个名为UserControl的空组件的概念,可以随时自由设计并添加到另一个组件或窗体容器中。为了创建灵活和可交换的UI,用户控件经常被使用。您可以在Visual Studio中创建如下所示的:

将新控件命名为:

之后,您可以设计UI控件:

完成设计后,编译项目/解决方案并转到要添加新设计控件的窗体。在工具栏面板中,您将看到新的UserControl,它可以通过拖放(使用鼠标)添加到表单中:

您可以创建任意数量的用户控件,并将它们添加到表单中或从表单中删除

所有这些步骤都可以在代码中完成。为了创建此类新视图,您需要创建一个继承预定义UserControl类的新类:

public class EditorUserControl : UserControl
{
}
每个控件元素都有一个控件,该控件保存/包含在显示UI时绘制的控件类型的组件。要将新控件添加到主面板,需要将其添加到控件集合:

public partial class EditorUserControl : UserControl
{
    public EditorUserControl()
    {
        var button = new Button();
        button.Text = "Import";
        this.Controls.Add(button);
    }
}
请注意,手动添加零部件时,您负责调整零部件的大小和位置。预定义的布局面板可以帮助您:

  • 等等
现在只剩下将新用户控件添加到主窗体,就像将UI元素添加到自己的控件一样:

var simpleEditor = new EditorUserControl();
simpleEditor.Dock = DockStyle.Fill;
this.Controls.Add(simpleEditor);
可以通过其预定义属性调整UI控件设置

您可以混合使用预定义的容器和用户控件,以实现所需的UI:

有很多关于C#和VS以及.NET的优秀初学者教程:


如果您正在使用WPF,请查看PRISM相关问题是的,这是可能的。如果要使用winforms-创建UserControl,然后将其放入容器(TableLayoutPanel或SplitContainer或Panel等)或将UserControl直接放入Form Controls集合。@Stephen我不确定是否使用WPF。我