【问题标题】:Is it possible to open winform form from dependency?是否可以从依赖项中打开winform表单?
【发布时间】:2021-11-22 18:47:10
【问题描述】:

我有一个 Visual Studio Windows 窗体应用程序,它有多个项目,每个项目都有多个表单。启动时加载的项目调用另一个项目的表单并关闭自己的表单。将启动程序称为“setup”,另一个称为“main”。我有一个场景,我想跳过设置并稍后返回。由于 setup 是 main 的依赖项,而不是相反,我似乎无法创建 setup 表单的实例。是这样吗,还是我做错了什么?

setup 调用 open main 是这样的

        this.Hide();
        frmDemo demo = new frmDemo();
        demo.ShowDialog();
        this.Close();

我想从主窗体到设置窗体做同样的事情,但我遇到了麻烦。

基本上应该只是

frmSetup setup = new frmSetup();
setup.show();

但这不起作用,因为它找不到表单。

【问题讨论】:

  • 启动Form在Program.cs中定义。您可以在那里定义在应用程序启动时运行所需的任何表单所需的逻辑。 -- 您的应用在任何表单显示之前启动。

标签: c# .net winforms


【解决方案1】:

如果你想从 Main 中引用 Setup,那么你需要在 Main 中添加一个引用。

那么问题是你会创建一个循环依赖,这是一个糟糕的设计(我认为你也会得到编译器错误)。

有一些方法可以解决这个问题,但最好的方法是让您的主程序成为第一个启动(而不是设置)的程序。然后在启动过程中,它会启动设置表单并等待它完成,然后继续。然后当它需要再次启动设置时,就没有问题了。

所以你有效地扭转了依赖关系。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2023-03-31
    • 2010-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多