【问题标题】:How do I make buttons in two separate C# forms in two separate projects open each other?如何使两个单独项目中的两个单独 C# 表单中的按钮相互打开?
【发布时间】:2019-08-01 03:18:38
【问题描述】:

我在一个 Microsoft Visual Studios 解决方案中处理两个 C# 项目。一个项目包含一个表单,用于从另一个项目中选择要打开的表单。我的每个 Project 2 表单上还有一个“返回”按钮,我希望用它来重新打开第一个项目的表单选择器。我研究了如何在没有运气的情况下绕过循环引用依赖。我更愿意将这些作为两个单独的项目。我是否需要将所有内容整合到一个混乱的项目中,或者有没有办法完成我想要做的事情?提前谢谢你。

编辑:

我找到了一个简单但有效的解决方案。我只需要从项目 1 中引用项目 2,因为我可以将项目 1 表单作为参数传递到项目 2 表单中,然后在单击按钮时显示第一个表单。再次感谢。

【问题讨论】:

  • 这是 Windows 窗体(例如,Form 类是否位于以下命名空间:System.Windows.Forms)?能否请您发布一些代码,尤其是用于从 Project 2 打开表单的代码?

标签: c# forms visual-studio reference dependencies


【解决方案1】:

按照以下步骤操作:

  1. 在与简单命令实用程序相同的解决方案中创建一个新项目(例如“Opener”)。
  2. 将主要项目的引用添加到 Opener。
  3. 在 Program.cs 中添加以下代码:

    private static void OpenForm(String formName) { if (formName == "Form1") // 打开你的 Form1 别的 // 打开第二个 Form2 }

  4. 现在您可以在按钮点击事件中点击打开表单:

    Process.Start("Opener.exe Form1");

【讨论】:

  • 感谢您的回复。这似乎是一个聪明的解决方案,但我确实有一个关于如何实施它的问题。如果我有一个“Opener”项目,由 Project 1 调用以打开 Project 2,由 Project 2 调用以打开 Project 1,则“Opener”项目将需要引用 Project 1 和 2,而 Project 1 和 2 将需要引用Opener,导致同样的问题。我是否需要两个 Opener 项目,一个由 Project 1 调用以打开 Project 2,另一个由 Project 2 调用以打开 Project 1?谢谢。
  • 不,您不需要在任何其他项目中引用 Opener 项目。只需使用 Process.Start 调用其 .exe。如果有帮助,只需将答案标记为已接受。 :)
猜你喜欢
  • 1970-01-01
  • 2013-08-14
  • 2021-09-27
  • 2018-12-30
  • 1970-01-01
  • 2020-04-08
  • 1970-01-01
  • 1970-01-01
  • 2021-04-19
相关资源
最近更新 更多