C#?彈出窗口show()和showdialog()的兩種方式
我們?cè)跇?gòu)建C# Form窗口的時(shí)候經(jīng)常需要到彈出新的窗口,那么接著就會(huì)如何彈出窗口的疑問(wèn)。這里介紹最常見(jiàn)的兩種彈窗方法show()和showdialog()。我在VS2019中構(gòu)建一個(gè)簡(jiǎn)單的工程來(lái)講解讓他們之間的區(qū)別。大家也可以動(dòng)手建一個(gè)體驗(yàn)他們之間的區(qū)別。
form.Show()彈出窗口
這個(gè)方法彈出來(lái)的窗體和父窗體(上一個(gè)窗體)是屬于同一等級(jí)的窗體,這兩個(gè)窗體可以同時(shí)存在而且可以隨意切換。
form.ShowDialog()彈出窗口
showdialog彈出來(lái)的窗體就不能這樣,它永遠(yuǎn)是被置頂?shù)模绻魂P(guān)閉這個(gè)窗體,那就不能使用別的窗體,別的窗體都是灰顯的。
一、構(gòu)建工程和界面介紹
首先我們建立兩個(gè)基本窗口類(lèi),如下圖,一個(gè)是首先會(huì)啟動(dòng)的Form主窗口(右邊),其次是彈出界面Dialog(左邊)。

二 、添加代碼
將兩個(gè)窗口的代碼添加到對(duì)應(yīng)的類(lèi)中。添加的按鍵單擊事件中增加下面的主窗口代碼和彈出窗口代碼。
(1)主窗口代碼:
public Form1()
{
InitializeComponent();
}
//實(shí)例化窗口類(lèi)
Dialog _dlg = new Dialog();
private void button_show_Click(object sender, EventArgs e)
{
_dlg.Show();//顯示
}
private void button_hide_Click(object sender, EventArgs e)
{
_dlg.Hide();//隱藏
}
private void button_showDialog_Click(object sender, EventArgs e)
{
//實(shí)例化窗口類(lèi)
Dialog _dialog = new Dialog();
//彈出對(duì)話(huà)框
_dialog.ShowDialog();
}
(2)彈出窗口代碼:
public Dialog()
{
InitializeComponent();
}
private void button_ok_Click(object sender, EventArgs e)
{
//指定返回結(jié)果
this.DialogResult = DialogResult.OK;
//關(guān)閉
this.Close();
}
private void button_cancel_Click(object sender, EventArgs e)
{
//指定返回結(jié)果
this.DialogResult = DialogResult.Cancel;
//關(guān)閉
this.Close();
}
private void hide_Click(object sender, EventArgs e)
{
//隱藏
this.Hide();
}
三、驗(yàn)證效果和小結(jié)
我們可以看到這些Show()方法和ShowDialog()方法都可以彈出我們想要的窗口,但是他們的效果明顯不同,可以小結(jié)概述為下面幾個(gè)方面差異。
| 項(xiàng)目 | Show()方法 | ShowDialog()方法 |
|---|---|---|
| 名稱(chēng) | 顯示控件 | 顯示對(duì)話(huà)框 |
| 關(guān)閉的對(duì)應(yīng)方法 | Hide() 隱藏控件 | Close()關(guān)閉窗體 |
| 編輯顯示效果 | 和主窗口平級(jí),彈出子窗口后,兩者可以任意切換到頂層和編輯。 | 比主窗口優(yōu)先級(jí)高,彈出編輯子窗口只能編輯子窗口,子窗口獨(dú)占頂層,只有關(guān)閉(close)返回后,用戶(hù)才可以編輯主窗口。 |
| 理模顯示理解 | 顯示或隱藏控件,隱藏時(shí)并沒(méi)有關(guān)閉,只是看不見(jiàn),還存在。 | 打開(kāi)等待關(guān)閉的對(duì)話(huà)框,打開(kāi)就存在,關(guān)閉就清除,和messageBox類(lèi)似,關(guān)閉等同于右上角的叉叉(×)。 |
重點(diǎn):Show()和Hide() 是一對(duì),ShowDialog()和Close()是一對(duì)。 請(qǐng)一一對(duì)應(yīng),不能混用的哦。
到此這篇關(guān)于C# 彈出窗口show()和showdialog()的兩種方式的文章就介紹到這了,更多相關(guān)C# 彈出窗口show()和showdialog()內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#多線(xiàn)程開(kāi)發(fā)之任務(wù)并行庫(kù)詳解
最近在學(xué)習(xí)C#的并行編程,在每本書(shū)上的看到的知識(shí)點(diǎn)都不全面,所以先參考多本書(shū)書(shū)籍的講解,將并行編程,多線(xiàn)程編程的知識(shí)點(diǎn)整理一下,這篇文章主要給大家介紹了關(guān)于C#多線(xiàn)程開(kāi)發(fā)之任務(wù)并行庫(kù)的相關(guān)資料,需要的朋友可以參考下2021-09-09
C#實(shí)現(xiàn)簡(jiǎn)單的二叉查找樹(shù)
這篇文章介紹了C#實(shí)現(xiàn)二叉查找樹(shù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
C# CAD SelectionFilter下TypedValue數(shù)組使用方式
這篇文章主要介紹了C# CAD SelectionFilter下TypedValue數(shù)組使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
C# 調(diào)用Delphi dll 實(shí)例代碼
這篇文章介紹了C# 調(diào)用Delphi dll 實(shí)例代碼,有需要的朋友可以參考一下2013-09-09
C# 封裝HtmlHelper組件:BootstrapHelper
這篇文章主要介紹了C# 封裝HtmlHelper組件之BootstrapHelper 的相關(guān)資料,需要的朋友可以參考下2016-08-08
C#中List集合使用Max()方法查找到最大值的實(shí)例
這篇文章主要介紹了C#中List集合使用Max()方法查找到最大值的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-12-12
C#對(duì)文件進(jìn)行批量重命名或者對(duì)某單個(gè)文件進(jìn)行改名的示例代碼
這篇文章主要介紹了C#對(duì)文件進(jìn)行批量重命名或者對(duì)某個(gè)單獨(dú)的文件進(jìn)行改名的實(shí)現(xiàn)方法,文中有相關(guān)的代碼示例供大家參考,具有一定的參考價(jià)值,需要的朋友可以參考下2024-05-05
C#數(shù)據(jù)結(jié)構(gòu)與算法揭秘四 雙向鏈表
上節(jié)說(shuō)過(guò)這節(jié)會(huì)講雙向鏈表,環(huán)形鏈表和應(yīng)用舉例,我們開(kāi)始吧?。。?!2012-11-11

