首页 > 解决方案 > 分离程序和设计逻辑(C# Winforms项目结构)

问题描述

我对 Visual Studio (2019) 和 WinForms 有点陌生。我目前正在尝试将这两个类分开:一个用于表单设计,一个用于项目逻辑。

static class Program {
    static void Main() {
        Application.SetHighDpiMode(HighDpiMode.SystemAware);
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
        // more logic
    }
}

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
    }
    // design logic
}

目前,我很难在Program和之间传输数据Form1。我已经尝试创建公共成员来交换这些信息,但我不知道如何访问它(因为表单是用Applicationclass 实例化的。

我考虑过保持Program原样并将所有项目代码移至Form1. 将类替换Application为表单的实例化会导致程序不显示表单并提前终止。

Form1 foo = new Form1();

有没有办法将程序和设计逻辑分开,或者我应该把所有的逻辑都放进去Form1

感谢您的帮助。

标签: c#winforms

解决方案


Program通常只是启动应用程序的引导类。你通常不会在那里保留太多的逻辑。

尽管如此,您必须始终使用Application.Run消息循环来处理系统消息,例如鼠标和键盘输入。

但是你仍然可以foo这样使用:

Application.Run(foo);

推荐阅读