2015-10-05 50 views
0

我有2種形式,我需要(顯示/隱藏),他們主要的()..我想是這樣的:C#顯示和隱藏主程序形式

Form1 f1 = new Form1(); 
Form2 f2 = new Form2(); 

f1.ShowDialog(); 
Thread.Sleep(5000); 
f1.Close(); // or Hide() both not working 
f2.ShowDialog(); 

但只有它顯示f1並且不關閉它或顯示f2

+3

'Thread.Sleep'在這裏不需要,你調用'f1'作爲對話框,這意味着直到'f1'被關閉,執行才停止。我猜如果你關閉'f1','f2'會顯示。如果你想顯示一個窗體,並且當它打開顯示下一個窗體時,使用'f1.Show()'和'f2.Show()'而不是'ShowDialog'。 'ShowDialog'是一個阻塞調用,意味着它將等待方法返回,然後繼續執行它下面的行,直到關閉對話框(通常使用'DialogResult')它纔會返回。 –

+0

表單1或2在調用f1.Show ..時需要'Modal'? – MethodMan

+0

@RonBeyer謝謝你的回答..我試過Show()之前詢問(沒有睡眠),當編譯它沒有顯示..但從你的評論我知道Show將關閉時執行結束..這就是爲什麼我沒有'不要看錶格。 –

回答

0

f1.ShowDialog()顯示屏幕直到表單退出。 之後它關閉了已經關閉的表格f1

如果你正在創建一個啓動畫面,there are better ways to do so

代碼中的一個快速修復將更改f1.ShowDialog()f1.Show()它不會阻止您的代碼。