C#?彈出窗口show()和showdialog()的兩種方式
我們在構(gòu)建C# Form窗口的時(shí)候經(jīng)常需要到彈出新的窗口,那么接著就會(huì)如何彈出窗口的疑問。這里介紹最常見的兩種彈窗方法show()和showdialog()。我在VS2019中構(gòu)建一個(gè)簡單的工程來講解讓他們之間的區(qū)別。大家也可以動(dòng)手建一個(gè)體驗(yàn)他們之間的區(qū)別。
form.Show()彈出窗口
這個(gè)方法彈出來的窗體和父窗體(上一個(gè)窗體)是屬于同一等級的窗體,這兩個(gè)窗體可以同時(shí)存在而且可以隨意切換。
form.ShowDialog()彈出窗口
showdialog彈出來的窗體就不能這樣,它永遠(yuǎn)是被置頂?shù)?,如果不關(guān)閉這個(gè)窗體,那就不能使用別的窗體,別的窗體都是灰顯的。
一、構(gòu)建工程和界面介紹
首先我們建立兩個(gè)基本窗口類,如下圖,一個(gè)是首先會(huì)啟動(dòng)的Form主窗口(右邊),其次是彈出界面Dialog(左邊)。
二 、添加代碼
將兩個(gè)窗口的代碼添加到對應(yīng)的類中。添加的按鍵單擊事件中增加下面的主窗口代碼和彈出窗口代碼。
(1)主窗口代碼:
public Form1() { InitializeComponent(); } //實(shí)例化窗口類 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í)例化窗口類 Dialog _dialog = new Dialog(); //彈出對話框 _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()方法 |
---|---|---|
名稱 | 顯示控件 | 顯示對話框 |
關(guān)閉的對應(yīng)方法 | Hide() 隱藏控件 | Close()關(guān)閉窗體 |
編輯顯示效果 | 和主窗口平級,彈出子窗口后,兩者可以任意切換到頂層和編輯。 | 比主窗口優(yōu)先級高,彈出編輯子窗口只能編輯子窗口,子窗口獨(dú)占頂層,只有關(guān)閉(close)返回后,用戶才可以編輯主窗口。 |
理模顯示理解 | 顯示或隱藏控件,隱藏時(shí)并沒有關(guān)閉,只是看不見,還存在。 | 打開等待關(guān)閉的對話框,打開就存在,關(guān)閉就清除,和messageBox類似,關(guān)閉等同于右上角的叉叉(×)。 |
重點(diǎn):Show()和Hide() 是一對,ShowDialog()和Close()是一對。 請一一對應(yīng),不能混用的哦。
到此這篇關(guān)于C# 彈出窗口show()和showdialog()的兩種方式的文章就介紹到這了,更多相關(guān)C# 彈出窗口show()和showdialog()內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C#?wpf?通過HwndHost渲染視頻的實(shí)現(xiàn)方法
日常開發(fā)中,特別是音視頻開發(fā),需要在界面上渲染視頻,比如制作一個(gè)播放器、或者視頻編輯工具、以及視頻會(huì)議客戶端。通常拿到的是像素格式數(shù)據(jù),此時(shí)需要渲染到wpf窗口上就需要一定的方法,本文介紹一種通過hwnd渲染的方法,控件既能提供hwnd又能嵌入wpf窗口里2021-11-11implicit關(guān)鍵字做自定義類型隱式轉(zhuǎn)換的方法
implicit 關(guān)鍵字用于聲明隱式的用戶定義類型轉(zhuǎn)換運(yùn)算符。如果轉(zhuǎn)換過程可以確保不會(huì)造成數(shù)據(jù)丟失,則可使用該關(guān)鍵字在用戶定義類型和其他類型之間進(jìn)行隱式轉(zhuǎn)換,這篇文章就給大家詳細(xì)介紹implicit關(guān)鍵字做自定義類型隱式轉(zhuǎn)換的方法,需要的朋友可以參考下2015-08-08基于C#實(shí)現(xiàn)設(shè)置桌面背景功能
這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)設(shè)置桌面背景功能,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下2022-12-12