c# - 如何将可执行文件作为 MDI 子项打开?

标签 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 表单应用程序,而这正是我需要它的原因。

感谢任何帮助,谢谢。

编辑:我可以访问我想作为 mdi child 打开的 c# 应用程序的代码。

最佳答案

OP: I have access to the code for the c# app i want to open as a mdi child.

要打开其他 .Net 窗口应用程序的窗体,您不需要使用 SetParent,您可以简单地 add a reference将该 .Net 应用程序(dll、exe 或项目)添加到您当前的项目,然后创建该应用程序的主要形式的实例,并像其他形式的应用程序一样显示它。

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

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

要了解有关添加引用的更多信息,请阅读 How to: Add or Remove References By Using the Add Reference Dialog Box

关于c# - 如何将可执行文件作为 MDI 子项打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34423020/

相关文章:

c# - ListPicker 在被解雇时不调用 SummaryForSelectedItemsDelegate

c# - 打印对象列表中所有属性的最佳方法是什么?

c# - 使用 C# 4.0 在 3 层 winform 应用程序中存储连接字符串的位置

winforms - 按钮图像离按钮顶部太远;离按钮底部太近

c# - IEnumerable 到 Listview

c# - 编码问题

c# - 具有 Active 标志的流畅映射和关系表

c# - 交互式 C# 控制台作为即时窗口的替代

c# - 使用 OwnerDrawAll 时 Windows 窗体中的 TreeView 错误

c++ - 将 Mat 从 C++ dll 返回到 VB.Net