2013-12-17 72 views
0

如何從C#中的主線程打開新窗體?在主線程上打開一個新窗體

此時此刻我使用這個打開它們:

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

但是,這將創建一個新的線程...我的主要形式是我的登錄表單..我想,要關閉,然後打開我的第二個形成。

+4

爲什麼你不能用'(新表())顯示()'?有兩個「GUI」線程不是一個好主意。 – vcsjones

+0

@vcsjones我已經知道了..所以我試圖解決這個問題...... –

+0

@vcsjones如果你這樣做,那麼你的登錄表單會留在應用程序的持續時間,儘管是無用的。 – Servy

回答

7

轉到您的Program.cs文件,並修改它,讓你展示你的登錄表單,然後,它已被關閉後,確定是否應該打開的另一種形式:

它很可能會看更多的東西以下是這樣的:

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

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

只要使用這個

Application.Run(new OppenMainForm());