1、窗體顯示
- 顯示窗體可以有以下2種方法:
Form.ShowDialog方法 (窗體顯示為模式窗體)
Form.Show方法 (窗體顯示為無模式窗體)
2、區(qū)別
兩者具體區(qū)別如下:
- 1.在調(diào)用Form.Show方法后,Show方法后面的代碼會立即執(zhí)行
- 2.在調(diào)用Form.ShowDialog方法后,直到關(guān)閉對話框后,才執(zhí)行此方法后面的代碼
- 3.當(dāng)窗體顯示為模式窗體時,單擊“關(guān)閉”按鈕會隱藏窗體,并將DialogResult屬性設(shè)置為DialogResult.Cancel
與無模式窗體不同,當(dāng)用戶單擊對話框的關(guān)閉窗體按鈕或設(shè)置DialogResult屬性的值時,不調(diào)用窗體的Close方法
實(shí)際上是把窗體的Visible屬性賦值為false,隱藏窗體了
這樣隱藏的窗體是可以重新顯示,而不用創(chuàng)建該對話框的新實(shí)例
因?yàn)槲搓P(guān)閉窗體,所以在應(yīng)用程序不再需要該窗體時,請調(diào)用該窗體的Dispose方法
3、怎么判斷一個窗體是模式窗體呢?
利用Form.Modal屬性
如果該窗體是模式顯示,則為true,否則為false
根據(jù)通過Show和ShowDialog而顯示出來的窗體的Modal屬性分別對應(yīng)false和true特別注意:
由于在窗體創(chuàng)建之前是無法得知顯示方式的,所以在窗體構(gòu)造函數(shù)中,Modal屬性總是對應(yīng)false,所以我們只能在Load事件中或者之后利用Modal屬性值
4、怎么確定窗體間的所有者關(guān)系?
Form類的Owner屬性: 窗體的所有者
當(dāng)一個窗體歸另一窗體所有時,它便隨著所有者窗體最小化和關(guān)閉。例如,如果Form2歸窗體Form1所有,則關(guān)閉或最小化Form1時,F(xiàn)orm2也會關(guān)閉或最小化。
例如在窗體Form1中
Form2 f2 = new Form2 ( );
f2.ShowDialog ( this );
//或者
f2.Show ( this );
//或者
f2.Owner = this;
f2.ShowDialog( );
這樣f2的所有者就是Form1
5、資料
[博客園] 清空回聲的博客:
https://www.cnblogs.com/Echo529/p/4671404.html