c#从同一解决方案中的其他项目运行表单

时间:2016-05-10 08:22:49

标签: c# windows forms

我在Visual Studio 2015中使用了Windows窗体的C#解决方案。在解决方案中有两个项目:项目A,项目B。

如果我运行项目B,则会显示登录对话框。如果登录通过,则打开主表单。

如果单击项目A中的按钮,我想要相同的行为。但它只显示对话框,但点击登录,主要表单不打开

这是项目B的原始工作代码:

parts[8]

这是来自项目A的代码:

 static void Main() {
     Application.EnableVisualStyles();
     Application.SetCompatibleTextRenderingDefault(false);

     LoginForm pf;
     Application.Run(pf = new LoginForm ());

     if (pf.Zakaznik != null)
         Application.Run(new MainForm(pf.Zakaznik));
 }

2 个答案:

答案 0 :(得分:0)

您必须使用

引用它来实例化表单
var f = new ProjectB.Form1.cs(); 
f.Show();

您的其他表单未显示(您的主要表单),因为它已经打开。打开新帐户后,您需要执行this.Close();。当你显示另一个表单时,它实际上只隐藏另一个表单(或单独留下)。

答案 1 :(得分:0)

您应该致电Show(),而不是致电ShowDialog()。后一种方法将阻止您的代码,直到用户关闭窗口。通过调用第一种方法,您的代码会立即继续,而无需等待用户关闭对话框,从而导致pf.Zakaznik始终为null