1

我想知道如何在应用程序中调整我的视图。让我解释。

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

这是可能的,我将如何去做?

4

2 回答 2

4

在 Windows 窗体中有一个名为 UserControl 的空组件的概念,可以随时自由设计和添加到另一个组件或表单容器中。UserControls 经常用于创建灵活和可交换的 UI。您可以像这样在 Visual Studio中创建一个UserControl 项:

将新的 UserControl 添加到现有项目

为新控件命名:

命名新控件并添加它

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

设计控制

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

向表单添加新的用户控件

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

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

public class EditorUserControl : UserControl
{
}

每个 Control 元素都有一个ControlsCollection ,它保存/包含在显示 UI 时绘制的Control 类型的组件。为了将新控件添加到主面板,您需要将其添加到控件集合中:

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 控件设置。

您可以混合预定义的容器和 UserControls 以实现所需的 UI:

混合用户界面

对于 C# 和 VS 和 .NET,有很多很好的初学者教程:

于 2013-10-29T22:22:23.107 回答
1

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

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

 public Form1()
 {
     InitializeComponent();
     MyPanel panel = new MyPanel();
     this.Controls.Add(panel);
 }
于 2013-10-29T21:53:59.143 回答