避免某個子窗體重復運行的方法(showdialog、show)

在C#中窗口的顯示有兩種方式:模態顯示(showdialog)和非模態顯示(show)。
二者最常見的區別是:

模態顯示后,
彈出窗口阻止調用窗口的所有消息響應。
只有在彈出窗口結束后調用窗口才能繼續。
在模態窗口“關閉”后,可以讀取模態窗口中信息,包括窗口的返回狀態,窗口子控件的值。


Form2 test = new Form2;
if(test.ShowDialog==DialogResult.OK)
{
test.Show();
}

非模態顯示后,


可以在彈出窗口和調用窗口之間隨意切換。
調用窗口調用show方法后,下面的代碼可以立即執行,支持多個子窗體運行。

Form2 test = new Form2;
test.Show();

在非模態窗口關閉后,窗口的所有資源被釋放,窗口不存在,無法獲取窗口的任何信息。


當窗體顯示為 模式對話框時,單擊“關閉”按鈕(窗體右上角帶 X 的按鈕)會隱藏窗體并將 DialogResult 屬性設置為 DialogResult.Cancel。與無模式窗體不同,當用戶單擊對話框的關閉窗體按鈕或設置 DialogResult 屬性的值時,.NET Framework 不調用 Close 方法。窗體轉而可以隱藏并可重新顯示,而不用創建該對話框的新實例。因為未關閉顯示為對話框的窗體,所以在您的應用程序不再需要該窗體時,必須調用該窗體的 Dispose 方法。

也就是說,非模態窗口在關閉時,會調用close方法,進而調用dispose方法,將窗口資源進行回收,所以窗口關閉后,不能在獲取窗口信息。
模態窗口在關閉時,不會調用close方法,也不調用dispose方法,窗口仍然存在,占有資源,所以可以繼續獲得窗口相關信息,在窗口不再使用時,需要手動釋放資源。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/252212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/252212.shtml
英文地址,請注明出處:http://en.pswp.cn/news/252212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ubantu之Git使用

本文講述在Ubuntu 14.04 x64環境下,如何安裝Git,配置連接GitHub,并且上傳本地代碼到github。 一. 注冊Git賬戶以及創建倉庫 要想使用github第一步當然是注冊github賬號了。之后就可以創建倉庫了(免費用戶只能建公共倉庫&#xff0…

Java中基礎數據類型分類

Java中的四類八種基本數據類型 第一類:整數類型 byte short int long (int是整形,也屬于整數類型) 第二類:浮點型 float double 第三類:邏輯型 boolean(它只有兩個值可取true false) 第四類&#xff1…

C#如何打包EXE程序生成setup安裝文件

C#如何打包EXE程序生成setup安裝文件作為研發人員,在本機上開發的winform wpf或者控制臺程序需要發給其他人測試時候,一般需要對其進行打包生成setup安裝文件,今天第一次,搜了下資料,記錄如下:注&#xff1…

PHP正則表達式

php正則表達示的定界符 PHP的正則表達示定界符的規定如下: 定界符,不能用a-z A-Z 0-9 其他的都可以用。必須成對出現,有開始就有結束。 我們來例幾個例子: /中間寫正則/ 正確%中間寫正則% 正確^中間寫正則^ 正確中間寫正則 正確(…

最具戲劇性的分析診斷案例——十分鐘鎖定數據庫性能“元兇”

昨天,正好有點空時間想看看書,結果,剛打開書,沒看幾個字兒,接到用戶電話說:一個庫有問題,希望能幫忙看下。因為我知道他們那邊也有自己的專職DBA,于是問:沒讓人給看看嗎&…

Python黑科技:在家遠程遙控公司電腦,python+微信一鍵連接!

有時候需要遠程家里的臺式機使用,因為我平時都是用 MAC 多,但是遠程喚醒只能針對局域網,比較麻煩,于是我想用微信實現遠程喚醒機器。 *注意:全文代碼可左右滑動查看 準備工作 本程序主要是實現遠程管理 Windows10操作系…

c#通過app.manifest使程序以管理員身份運行

通常我們使用c#編寫的程序不會彈出這個提示,也就無法以管理員身分運行。微軟的操作系統使用微軟的產品方法當然是有的,通過app.manifest配置可以使程序打開的時候,彈出UAC提示需要得到允許才可以繼續,這樣就獲得了管理員的權限來執…

Oracle 作業

Oracle 作業 dbms_job與 dbms_scheduler 用于安排和管理作業隊列,通過使用作業,可以使ORACLE數據庫定期執行特定的任務。 一. dbms_job 1.1. 創建 variable jobno number; begin dbms_job.submit(:jobno,proce_t;, sysdate, sysdate1/24/60); commit; end; / 1.2. 參數 Job 輸出…

企業級 Spring Boot 教程 (十四)用restTemplate消費服務

構架工程 創建一個springboot工程,去消費RESTFUL的服務。這個服務是 http: ///gturnquist-quoters.cfapps.io/api/random ,它會隨機返回Json字符串。 Spring Cloud大型企業分布式微服務云架構源碼請加一七九一七四三三八零 在Spring項目中,它…

MOS管基本認識(快速入門)

1. 三個極的判定G極(gate)—柵極,不用說比較好認 S極(source)—源極,不論是P溝道還是N溝道,兩根線相交的就是 D極(drain)—漏極,不論是P溝道還是N溝道,是單獨引線的那邊2. N溝道與P溝道判別箭頭指向G極的是N溝道 箭頭背…

基礎構建模塊

5 基礎構建模塊 Java平臺類庫包含了豐富的并發基礎構建模塊,例如線程安全的容器類以及各種用于協調多個相互協作的線程控制流的同步工具類(Synchronizer)。本章將介紹其中一些最有用的并發構建模塊。 5.1同步容器類 同步容器類包括Vector和Hashtable,二者…

TCP定時器

1. TCP中7種定時器 TCP中有7中定時器 (1)建立連接定時器(connection-establishment timer) (2)重傳定時器(retransmission timer) (3)延遲應答定時器(delayed ACK timer) (4)堅持定時…

sql優化大全

1. 優化SQL步驟 1. 通過 show status和應用特點了解各種 SQL的執行頻率 通過 SHOW STATUS 可以提供服務器狀態信息,也可以使用 mysqladmin extende d-status 命令獲得。 SHOW STATUS 可以根據需要顯示 session 級別的統計結果和 global級別的統計結果。 如顯示當前s…

Halcon實現邊緣提取

一、邊緣提取 1、設置ROI興趣區域 2、快速二值化,并連接相鄰區域。 這樣做的目的是進一步減少目標區域,通過二值化將目標區域大概輪廓提取出來 3、提取最接近目標區域的輪廓 常用函數有boundary,gen_contour_region_xld 4、根據自己的需求提取…

軟件工程網絡15個人閱讀作業1 201521123038 游舒婷

軟件工程網絡15個人閱讀作業1 201521123038 游舒婷 1.博客園地址 sakurai3104 2.碼云地址 sakurai3104 3.閱讀與思考 (1)回想一下你初入大學時對網絡工程專業的暢想 當初你是如何做出選擇網絡工程專業的決定的? 填報志愿的時候,大…

18LaTeX學習系列之---LaTeX的參考文獻

目錄 目錄前言(一)簡單的參考文獻1.說明2.源代碼3.輸出效果(二)以文件管理的方式1.說明:2.源代碼:3.輸出效果(三)直接從源網站獲取1.說明2.操作目錄 本系列是有關LaTeX的…

Vue 2.0 v-for 響應式key, index及item.id參數對v-bind:key值造成差異研究

Vue 2.0 v-for 響應式key, index及item.id參數對v-bind:key值造成差異研究 在github上閱覽README.md以獲得最佳閱讀體驗,點這里 v-for響應式key, index及item.id參數對v-bind:key值造成差異研究 實驗背景 通常情況下,我們渲染一個li列表,采用…

halcon edges_sub_pix算子

轉載http://blog.51cto.com/juwen/133003 介紹一下Canny算子: 使用累計直方圖計算兩個閥值。凡是大于高閥值的一定是邊緣; 凡是小于低閥值的一定不是邊緣;如果檢測結果大于低閥值但又小于高閥值,那就要看這個像素的鄰接像素中有…

Python 基礎(常用數據結構)

常用數據結構 1)元組 元組是一種靜態的數據結構,無法修改,若要修改只能重新生成新的元組。 輸出結果: 元組元素的獲取是通過索引值去獲得的;例如上面的tup1[0]返回apple;另外你可以直接把tup1一次性賦給多個…

Java IO(二)——RandomAccessFile

一、RandomAccessFile RandomAccessFile類可以說是Java語言中功能最為豐富的文件訪問類,它提供了眾多的文件訪問方法。RandomAccessFile類支持"隨機訪問"方式,可以跳轉到文件的任意位置處讀寫數據。要訪問一個文件的時候,不想把文件…