showdialog就是顯示有模式的窗體,showdialog後面的語句不會執行,直到顯示的窗體被關閉。 show就是無模式的窗體,顯示窗體後不論窗體是否關閉都執行show後面的語句。
-------------------------------------------------------------------------------------------------------------
面對多視窗的調用的時候,我們往往不喜歡視窗之間的随意切換,那樣我們還有花費時間尋找我們要用的視窗,而且,一但出現問題,視窗的順序也有可能被再次打亂,很是不順手,那麼我們怎麼辦呢? 我們可以将show方法轉化為showdialog方法,顧名思義,showdialog是一個進行路經綁定的show方法,他是不可以自由切換的,換言之,就是,當你沒有關閉你目前頁的前提下,你是無法關閉該頁面後面的任一頁面的,它是目前唯一(路經打開)為true的。 而show方法由于未進行綁定,它所顯示的各個視窗、對話框是可以互相切換,而不需要關閉目前視窗、對話框。但是他由于未進行綁定,是以每個由show方法打開的視窗的順序是非固定的,如果遇到什麼問題,由show方法打開的視窗的順序可能會有很大的改變!
show()僅僅是顯示出來視窗界面而已,也就是和你執行的結果在同一視窗顯示,所顯示的視窗可以在背景運作,而showDialog()是一個對話框視窗界面,執行結果以新視窗界面出現,不允許進行背景運作,就是你想編輯什麼的時候,非得先關閉showDialog()視窗界面才可以進行其他操作.
show()是非模式窗體. showDialog()是模式窗體. 差別在于,以showDialog()打開的窗體,要等窗體關閉後才能操作其他窗體.而show()則不受此限制.
這是最經常的差別了, 還有一個我個人使用的心得,你可以了解
比如你先打開子窗體,想隐藏主窗體。 如果這個時候用Show的話,則會發生的事情是,打開子窗體的同時主窗體又顯示出來,而使用ShowDialog()的時候主要當子窗體關閉的時候主窗體才會顯示。
舉個簡單的例子,代碼如下:
Form2 f2 = new Form2();
this.Visible = false;
f2.ShowDialog();
this.Visible= true;
這就是模态對話框的與Show的差別。
龍騰一族至尊龍騎