顯示形式當我想顯示形式(C#)通過點擊在另一種形式的按鈕我通常創建從我要顯示和使用show方法的形式的對象:從另一種形式
Form2 f2 = new Form2();
f2.Show();
或我的「所有者」的工作:
Form2 tempForm = new Form2();
this.AddOwnedForm(tempForm);
tempForm.Show();
兩種方式產生相同的結果,但什麼是最好的,它們之間有什麼區別?
顯示形式當我想顯示形式(C#)通過點擊在另一種形式的按鈕我通常創建從我要顯示和使用show方法的形式的對象:從另一種形式
Form2 f2 = new Form2();
f2.Show();
或我的「所有者」的工作:
Form2 tempForm = new Form2();
this.AddOwnedForm(tempForm);
tempForm.Show();
兩種方式產生相同的結果,但什麼是最好的,它們之間有什麼區別?
除了命名之外,唯一的區別是在第二個中你打電話AddOwnedForm,在第一個中你沒有。看看我們看到的文檔:
當一個窗體被另一個窗體所擁有時,它被最小化並且被所有者窗體關閉。例如,如果Form2由窗體Form1擁有,如果Form1關閉或最小化,則Form2也關閉或最小化。擁有的表格也不會顯示在其所有者表單後面。您可以使用擁有的窗體來查找和替換窗口,這些窗口在選擇所有者窗體時不應顯示在所有者窗體後面。
所以,如果你想要這些表單的行爲被一起最小化,並且一個總是顯示在另一個之上,使用AddOwnedForm。如果您不想要這種行爲,請不要使用它。
默認情況下,Microsoft使用Form f = new Form(); f.Show();
創建一個新的Windows窗體項目以顯示主窗體,並且在這些方法之間可能存在可忽略的差異(性能)。使用Show()
方法,而不僅僅是設置f.Visible = true;
也更合乎邏輯。
當您使用AddOwnedForm()
時,您基本上將這些表格鎖定在一起,這樣當一個表格被最小化時,另一個表格也是如此。該表格也總是在之上顯示,擁有形式類似於模態對話框。
你也可以這樣做:f2.Show(this);以表明所有者。 – 2010-04-11 22:21:49