C# 使每个面板在单独的 View 中

标签 c# panel

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

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

这可能吗?我该怎么做?

最佳答案

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

Add new UserControl to an existing project

命名新控件:

Naming new control and adding it

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

Design control

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

Add new user control to the form

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

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

public class EditorUserControl : UserControl
{
}

每个控件元素都有一个 ControlsCollection保存/包含在显示 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 控件设置。

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

mixed UI

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

关于C# 使每个面板在单独的 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19669746/

相关文章:

c# - 如何阻止此第三方 DLL 在我完全信任的 Web 应用程序中抛出安全异常

c# - 删除某些控件后如何删除(删除)文本框之间的空间?

WPF 自定义面板/控件创建 -- "The Doughnut"

使用面板和页面转换的 Jquery Mobile 故障

c# - 遍历记录并根据条件更新数据库

c# - 删除表时 ExecuteNonQuery 会返回什么?

c# - 用 C# 编写 CSV 解析器

c# - 如何在 C# 中创建横幅面板?

Java 使用 Graphics 创建动态但简单的图形

c# - Entity Framework Core 2.0 中每种类型的表