C#:WinForm中窗體顯示

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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容