C#Winforms应用程序打开第二个Winforms应用程序

时间:2011-01-05 16:54:43

标签: c# winforms

我有一个小编写的应用程序需要使用/合并到大约6个较大的部分中。理想情况下,我希望能够从每个独立应用程序中打开这个较小的部分,而不是将代码添加到每个部分。如果只需要在一个应用程序中进行更改,这将允许更容易的维护。

我看过,但我似乎无法弄清楚如何从一个内部打开第二个winform应用程序。任何帮助都会很棒。

由于

2 个答案:

答案 0 :(得分:3)

2个选项。

1)如果这个小应用程序可以独立存在,这意味着它可以以一种有用的方式执行而不会被父应用程序生成,那么请使用Process.Start()。生成此过程的应用程序可能无法在部分信任环境中运行。

Process.Start("notepad.exe");

2)如果应用程序仅在父应用程序的上下文中有用,比如通过给定对象或来自其他应用程序的其他参数,请考虑重构小应用程序以允许父应用程序引用该表单的项目。然后,您的父应用程序可以简单地创建表单的新实例并显示它:

var childForm = new SmallAppForm();
childForm.Owner = this; //the child window will close when its owner does.
childForm.Show();

虽然它的代码更多,但实现起来通常更容易,也更加万无一失。该表单也可以从应用程序的其他地方访问和控制,并且可以实现其他功能,而无需处理跨进程通信的相当混乱的业务。

答案 1 :(得分:2)

我希望将其设为一个库,这是一个单独的项目,您可以从其他项目中添加引用。比产生儿童过程更清洁。