gpt4 book ai didi

c# - 将一个 Windows 窗体设置为另一个 Windows 窗体的 MDI 子窗体(或等同物)

转载 作者:行者123 更新时间:2023-11-30 12:51:55 30 4
gpt4 key购买 nike

我有两个 Windows 窗体应用程序,我们称它们为 FormA.exe(父级)和 FormB.exe(子级)。 FormB.exe 是一个可以单独运行的应用程序。 FormA.exe是另一个应用程序,其功能之一是调用FormB.exe

我有这两个应用程序的源代码,我可以修改它们。

目前每当FormA.exe要调用FormB.exe时,我都会使用Process类来启动FormB。 exe 进程。问题是

  1. 我不知道如何在这两个 Form 之间传递消息。
  2. FormB.exeFormA 中调用时,它将作为另一个 独立于FormA 的应用程序出现在用户面前。 exe,但我希望它显示为 FormA 下的单个应用程序,FormB 作为 MDI 子项。
  3. FormB 本身就是一个 MDI。因此,如果我将它作为 MDI 加载,我将收到此错误 System.ArgumentException: Form cannot be both an MDI child and MDI parent
  4. 如果我不作为 MDI 加载,那么我的 FormB 将无法正常运行。换句话说,FormA 的全部目的都丢失了。

除了将 FormB 设置为 FormA 的 MDI 子级之外,还有其他方法吗?让一个 winform 应用程序完全包含在另一个应用程序中,并使它们进行通信彼此?

最佳答案

我同意诺埃尔的观点

有很多方法可以实现您正在尝试的目标。一种方法是使用 System.Reflection

在formA中像这样

 Assembly a = Assembly.LoadFrom("WindowsApplication1.exe");
Form frm = a.CreateInstance("WindowsApplication1.FormB") as Form;
frm.MdiParent = this;
frm.Show();

关于c# - 将一个 Windows 窗体设置为另一个 Windows 窗体的 MDI 子窗体(或等同物),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5726895/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com