c#中winform程式退出方法技巧總結
一、關閉窗體
1.this.close(); 只是關閉當前視窗,若不是主窗體的話,是無法退出程式的,另外若有託管執行緒(非主線程),也無法乾淨地退出;
4.system.environment.exit(0); 這是最徹底的退出方式,不管什麼執行緒都被強制退出,把程式結束的很乾淨。
二、登入窗體與主窗體的關閉
有許多人在用做c# 做登入窗體時會遇到這樣的問題,登入成功後當前登入form關閉,開啟main窗體,但main窗體點關閉按鈕後程式仍在程序仍舊在執行。
事實上,關閉main窗體,只是關閉了main窗體的執行緒,並沒有關閉程式的主線程,即程式的主線程為登入from。
方法一:(frmlogin 為登入窗體,frmmain 為主窗體) //登入窗體中「登入」按鈕的單擊事件
private void button1_click(object sender, eventargs e)//主窗體的formclosing事件或formclosed事件**}
private void frmmain_formclosing(object sender, formclosingeventargs e)
//主窗體的formclosed事件**
private void frmmain_formclosed(object sender, formclosedeventargs e)
說明:formclosing事件或formclosed事件二選一,這兩個的區別在於 formclosed 在關閉後發生,窗體的關閉動作不可取消;
formclosing 在關閉前發生,可取消,只要在裡面使用 e.cancel=true; 就可以讓視窗不能關閉。
高階技巧:在退出程式前彈出確認退出程式的對話方塊 //主窗體的formclosing事件**
private void frmmain_formclosing(object sender, formclosingeventargs e)
if (messagebox.show("真的要退出程式嗎?", "退出程式", messageboxbuttons.okcancel) == dialogresult.cancel)
e.cancel = true;
////主窗體的formclosed事件**
private void frmmain_formclosed(object sender, formclosedeventargs e)
dispose();
小貼士:以下**會導致顯示確定退出的兩次對話方塊,第一次單擊「確定」第二次單擊任何乙個都會退出。
private void frmmain_formclosing(object sender, formclosingeventargs e)
if (messagebox.show("真的要退出程式嗎?", "退出程式", messageboxbuttons.okcancel) == dialogresult.ok)
else
e.cancel = true;
程式入問的main()方法**,其中frmlogin為登入窗體,frmmain為主窗體
static void main()
frmlogin fl = new frmlogin();
if (fl.showdialog() == dialogresult.ok)
//登入窗體中的「登入」按鈕**
private void button1_click(object sender, eventargs e)
if (txtname.text == "123456")
this.dialogresult = dialogresult.ok;
this.close();
c#中winform程式退出方法技巧總結
一、關閉窗體
1.this.close(); 只是關閉當前視窗,若不是主窗體的話,是無法退出程式的,另外若有託管執行緒(非主線程),也無法乾淨地退出;
4.system.environment.exit(0); 這是最徹底的退出方式,不管什麼執行緒都被強制退出,把程式結束的很乾淨。
二、登入窗體與主窗體的關閉
有許多人在用做c# 做登入窗體時會遇到這樣的問題,登入成功後當前登入form關閉,開啟main窗體,但main窗體點關閉按鈕後程式仍在程序仍舊在執行。
事實上,關閉main窗體,只是關閉了main窗體的執行緒,並沒有關閉程式的主線程,即程式的主線程為登入from。
方法一:(frmlogin 為登入窗體,frmmain 為主窗體) //登入窗體中「登入」按鈕的單擊事件
private void button1_click(object sender, eventargs e)//主窗體的formclosing事件或formclosed事件**}
private void frmmain_formclosing(object sender, formclosingeventargs e)
//主窗體的formclosed事件**
private void frmmain_formclosed(object sender, formclosedeventargs e)
說明:formclosing事件或formclosed事件二選一,這兩個的區別在於 formclosed 在關閉後發生,窗體的關閉動作不可取消;
formclosing 在關閉前發生,可取消,只要在裡面使用 e.cancel=true; 就可以讓視窗不能關閉。
高階技巧:在退出程式前彈出確認退出程式的對話方塊 //主窗體的formclosing事件**
private void frmmain_formclosing(object sender, formclosingeventargs e)
if (messagebox.show("真的要退出程式嗎?", "退出程式", messageboxbuttons.okcancel) == dialogresult.cancel)
e.cancel = true;
////主窗體的formclosed事件**
private void frmmain_formclosed(object sender, formclosedeventargs e)
dispose();
小貼士:以下**會導致顯示確定退出的兩次對話方塊,第一次單擊「確定」第二次單擊任何乙個都會退出。
private void frmmain_formclosing(object sender, formclosingeventargs e)
if (messagebox.show("真的要退出程式嗎?", "退出程式", messageboxbuttons.okcancel) == dialogresult.ok)
else
e.cancel = true;
程式入問的main()方法**,其中frmlogin為登入窗體,frmmain為主窗體
static void main()
frmlogin fl = new frmlogin();
if (fl.showdialog() == dialogresult.ok)
//登入窗體中的「登入」按鈕**
private void button1_click(object sender, eventargs e)
if (txtname.text == "123456")
this.dialogresult = dialogresult.ok;
this.close();
C 中WinForm程式退出方法
1.this.close 只是關閉當前視窗,若不是主窗體的話,是無法退出程式的,另外若有託管執行緒 非主線程 也無法乾淨地退出 4.system.environment.exit 0 這是最徹底的退出方式,不管什麼執行緒都被強制退出,把程式結束的很乾淨。下面看一些例項 當我開啟乙個子窗體,進行某項操...
C 中WinForm程式退出方法技巧總結
c 中winform程式退出方法技巧總結 一 關閉窗體 1.this.close 只是關閉當前視窗,若不是主窗體的話,是無法退出程式的,另外若有託管執行緒 非主線程 也無法乾淨地退出 4.system.environment.exit 0 這是最徹底的退出方式,不管什麼執行緒都被強制退出,把程式結束...
C 中WinForm程式退出方法技巧總結
一 關閉窗體 1.this.close 只是關閉當前視窗,若不是主窗體的話,是無法退出程式的,另外若有託管執行緒 非主線程 也無法乾淨地退出 4.system.environment.exit 0 這是最徹底的退出方式,不管什麼執行緒都被強制退出,把程式結束的很乾淨。二 登入窗體與主窗體的關閉 有許...