如何以MDI子项的形式打开可执行文件?

时间:2015-12-22 19:22:46

标签: c# .net winforms

我有一个启动另一个应用程序的父窗体。应用程序启动时,应将应用程序设置为父级的mdichild。

我已设法使用以下代码将其与记事本配合使用。

Process proc = new Process();

proc.StartInfo.FileName = "notepad.exe";
proc.Start();
proc.WaitForInputIdle();
SetParent(proc.MainWindowHandle, this.panel.Handle);

问题在于它不能与所有应用程序一起使用。具体来说,它不能与c#中开发的其他win form应用程序一起使用,这就是我所需要的。

感谢任何帮助,谢谢。

编辑:我可以访问我想要作为mdi孩子打开的c#app的代码。

2 个答案:

答案 0 :(得分:0)

  

OP:我可以访问我想以mdi打开的c#app的代码   子。

要打开其他.Net窗口应用程序的一种形式,您不需要使用SetParent,只需{。}} .Net应用程序(dll,exe或项目)的add a reference即可项目,然后创建该应用程序的主要形式的实例,并像其他形式的应用程序一样显示它。

  • 如果您可以访问该应用程序的项目,则可以将其添加到当前解决方案中,并使用添加对当前项目的引用。

  • 如果您无权访问该应用程序的项目项目,则可以将其exe / dll的引用添加到当前项目中。

要详细了解添加引用,请阅读How to: Add or Remove References By Using the Add Reference Dialog Box

答案 1 :(得分:0)

  1. 添加 .exe(例如 another.exe)文件作为参考
  2. 添加 another.exe 引用 // 可能与您的 mdi 形式不同
  3. 添加以下代码 another.Form1 fr = new another.Form1(); //another.exe has Form1 if not select form. fr.MdiParent = this; fr.Show(); // Display the new form.