在主线程上打开一个新表单

时间:2013-12-17 21:53:40

标签: c# multithreading winforms

如何从C#中的主线程中打开一个新表单?

此时我用这个打开它们:

System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(oppenMainForm));
t.SetApartmentState(ApartmentState.STA);
t.Start();

但这会创建一个新线程...我的主要表单是我的登录表单..我想要关闭然后打开我的第二个表单。

2 个答案:

答案 0 :(得分:7)

转到program.cs文件并进行更改,以便显示登录表单,然后在关闭后确定是否应该打开另一个表单:

它可能看起来或多或少像这样:

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

if (loginform.DialogResult == DialogResult.Yes)
    Application.Run(new MainForm());
//TODO handle error cases

答案 1 :(得分:3)

请使用此

Application.Run(new OppenMainForm());