成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#模式窗體操作詳解

開發 后端
C#模式窗體操作是什么呢?這里主要向你詳細介紹了C#模式窗體操作的打開與關閉的操作和涉及的具體的方法解析,希望對你了解C#模式窗體操作有所幫助。

C#模式窗體的打開與關閉是如何實現的呢,讓我們先來看看C#模式窗體的打開,一般通過Form.ShowDialog ()方法或她的一個重載Form.ShowDialog (IWin32Window)來實現,其中后一個方法將窗體顯示為具有指定所有者的模式對話框。

C#模式窗體打開的操作:

  1. OptionForm form = new OptionForm();  
  2.  
  3. //form.ShowDialog();  
  4.  
  5. form.ShowDialog(this);  

對于指定所有者方式打開的模式窗體可以在模式窗體內部獲取主窗體的引用,

  1. //在模式窗體內部訪問所屬窗體  
  2.  
  3. MainForm form = this.Owner as MainForm;  

注意,如果以Form.ShowDialog ()方式打開,那Form.Owner屬性會是空引用。

C#模式窗體的關閉

先來看一下模式窗體關閉后的返回值。無論是調用Form.ShowDialog ()方法還是Form.ShowDialog (IWin32Window)方法,都會在模式窗體關閉時返回System.Windows.Forms.DialogResult枚舉值。參考 MSDN,該枚舉包含的值如下,

DialogResult.Abort,對話框的返回值是 Abort(通常從標簽為“中止”的按鈕發送)。

DialogResult.Cancel,對話框的返回值是 Cancel(通常從標簽為“取消”的按鈕發送)。

DialogResult.Ignore,對話框的返回值是 Ignore(通常從標簽為“忽略”的按鈕發送)。

DialogResult.No,對話框的返回值是 No(通常從標簽為“否”的按鈕發送)。

DialogResult.None,從對話框返回了 Nothing。這表明有模式對話框繼續運行。

DialogResult.OK,對話框的返回值是 OK(通常從標簽為“確定”的按鈕發送)。

DialogResult.Retry,對話框的返回值是 Retry(通常從標簽為“重試”的按鈕發送)。

DialogResult.Yes,對話框的返回值是 Yes(通常從標簽為“是”的按鈕發送)。

由于某些原因在實際用戶操作中比如選項數據無法保存,輸入的設置數據有問題,點擊[確定]按鈕需要阻止窗體的關閉以

對輸入的設置進行調整。對于一些開發者在技術社區貼的阻止模式窗體關閉的代碼,我認為不是很好的實現。以下用代碼來描述該實現,注意其中用到了三個事件。

  1. //注冊窗體關閉事件  
  2.  
  3. this.FormClosing +=   
  4. new System.Windows.Forms.  
  5. FormClosingEventHandler(  
  6. this.OptionForm_FormClosing);  
  7.  
  8. //注冊確定按鈕事件  
  9.  
  10. this.buttonOK.Click +=   
  11. new System.EventHandler(  
  12. this.buttonOK_Click);  
  13.  
  14. //注冊取消按鈕事件  
  15.  
  16. this.buttonCancel.Click +=   
  17. new System.EventHandler(  
  18. this.buttonCancel_Click);  
  19.  
  20. //三個事件對應的事件處理程序如下,  
  21.  
  22. //確定按鈕處理程序  
  23.  
  24. private void buttonOK_Click(  
  25. object sender, EventArgs e)  
  26. {  
  27. //假設textBoxPath用來記錄目錄路徑,如果不存在要求用戶重新設置。  
  28. if (this.textBoxPath.Text.Trim().Length == 0)  
  29. {  
  30. MessageBox.Show("輸入路徑信息不對!");  
  31. this.textBoxPath.Focus();  
  32. }  
  33. else 
  34. {  
  35. this.DialogResult = DialogResult.OK;  
  36. }  
  37. }  
  38. //取消按鈕處理程序  
  39. private void buttonCancel_Click(  
  40. object sender, EventArgs e)  
  41. {  
  42. this.DialogResult = DialogResult.Cancel;  
  43. }  
  44. //窗體關閉處理程序,在關閉窗體時發生。  
  45. private void OptionForm_FormClosing(  
  46. object sender, FormClosingEventArgs e)  
  47. {  
  48.  
  49. if (this.DialogResult != DialogResult.Cancel &&   
  50. this.DialogResult != DialogResult.OK)  
  51. e.Cancel = true;  
  52. }  

上面的關于C#模式窗體關閉的代碼都正常,就是事件寫多了,對上面代碼進行修改,去掉[取消]按鈕事件和窗體關閉事件以及相關的事件處理程序。首先需要在窗體構造函數中通過設置按鈕的DialogResult屬性來實現返回特定的DialogResult。

  1. this.buttonOK.DialogResult =   
  2. System.Windows.Forms.DialogResult.OK;  
  3.  
  4. this.buttonCancel.DialogResult =   
  5. System.Windows.Forms.DialogResult.Cancel;  
  6.  
  7. //注冊確定按鈕事件  
  8.  
  9. this.buttonOK.Click += new System.EventHandler(this.buttonOK_Click);  
  10.  
  11. //確定按鈕處理程序  
  12.  
  13. private void buttonOK_Click(object sender, EventArgs e)  
  14. {  
  15. if (this.textBoxPath.Text.Trim().Length == 0)  
  16. {  
  17. MessageBox.Show("輸入的路徑信息不對!");  
  18. this.textBoxPath.Focus();   
  19. //設置文本框焦點  
  20. this.DialogResult = DialogResult.None;  
  21. }  
  22. }  

可見,新的實現方式代碼減少了一半。

.Net Framework提供的C#模式窗體

.net Framework為我們提供了一些比較常用的對話框,在開發過程中省了不少事,以下對其進行介紹。

MessageBox。顯示可包含文本、按鈕和符號(通知并指示用戶)的消息框。通過MessageBox.Show 靜態方法來打開模式對話框。

  1. public static DialogResult Show ( string text ); 

該方法包含多個重載版本。復雜的一個方法如下,

  1. public static DialogResult Show (   
  2. IWin32Window owner,   
  3. string text,   
  4. string caption,   
  5. MessageBoxButtons buttons,   
  6. MessageBoxIcon icon,   
  7. MessageBoxDefaultButton defaultButton,   
  8. MessageBoxOptions options,   
  9. string helpFilePath,   
  10. HelpNavigator navigator,   
  11. Object param ) ;  

根據不同的參數可以定制對話框的行為。

C#模式窗體的另外一些對話框提供了特定功能。

OpenFileDialog。打開文件對話框,從FileDialog類繼承,提示用戶打開文件,無法繼承此類。對于文件的打開操作屬于比較常見的。

SaveFileDialog。保存文件對話框,從FileDialog類繼承,提示用戶選擇文件的保存位置。無法繼承此類。

FolderBrowserDialog。目錄瀏覽對話框,從CommonDialog類繼承,提示用戶選擇文件夾。無法繼承此類。 FontDialog。字體設置對話框,從CommonDialog類繼承,提示用戶從本地計算機上安裝的字體中選擇一種字體。可繼承該類。

ColorDialog。顏色設置對話框,從CommonDialog類繼承,表示一個通用對話框,該對話框顯示可用的顏色以及允許用戶定義自定義顏色的控件。可繼承該類。

PageSetupDialog。打印頁面設置對話框,從CommonDialog類繼承,允許用戶更改與頁面相關的打印設置,包括邊距和紙張方向。無法繼承此類。

PrintDialog。打印對話框,從CommonDialog類繼承,允許用戶選擇一臺打印機并選擇文檔中要打印的部分。無法繼承此類。

PrintPreviewDialog。打印預覽對話框,從Form類繼承,表示包含 PrintPreviewControl 的對話框窗體。可繼承該類。由于該類從Form類繼承,所以除了通過

  1. PrintPreviewDialog.ShowDialog ();   
  2.  
  3. PrintPreviewDialog.ShowDialog (IWin32Window);   

方法以模式方式打開窗體外,還可以通過PrintPreviewDialog.Show ();

或其重載PrintPreviewDialog.Show (IWin32Window);方法按正常非模式方式打開。

上面列舉的文件對話框抽象基類FileDialog是從CommonDialog抽象類繼承,因此所有從該類繼承的對話框都可以通過CommonDialog.ShowDialog ();或其重載CommonDialog.ShowDialog (IWin32Window);方法以模式方式打開窗體。

C#模式窗體的打開與關閉以及相關的一些操作的介紹就講解到這里,希望對你了解和學習C#模式窗體有所幫助。

責任編輯:仲衡 來源: 網易博客
相關推薦

2009-09-07 04:59:12

C#模式窗體

2009-09-07 06:48:13

C#透明窗體

2009-09-07 06:07:46

C#窗體設計

2009-09-07 04:56:52

C#模式窗體

2009-08-26 11:07:36

C#打印窗體

2009-09-07 03:44:50

C#窗體間傳值

2009-09-07 06:18:57

C#窗體設計器

2009-09-07 05:40:16

C#窗體位置C#窗體大小

2009-08-25 18:04:30

C#實現Singlet

2009-08-20 11:01:51

C#操作內存

2009-08-10 14:23:39

C# Setting

2009-08-20 10:10:55

C#透明窗體

2010-08-31 09:46:23

C#

2009-08-18 17:05:08

C#操作xml文件

2009-09-09 18:57:26

C# 加密TripleDES

2009-09-01 11:21:02

C#讀取word內容

2009-10-09 16:54:03

VB.NET窗體

2009-08-28 15:58:54

C#窗體里調用

2009-09-07 06:31:32

C#窗體移動

2009-09-07 04:19:56

C#窗體事件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 涩爱av一区二区三区 | 中文在线视频 | 欧美一级毛片久久99精品蜜桃 | 国产精品国产三级国产aⅴ浪潮 | 成人av大全| 免费看国产片在线观看 | 国产在线观看一区二区 | 成人精品在线视频 | 偷派自拍| 99精品在线观看 | 中文字幕黄色大片 | 夜夜爽99久久国产综合精品女不卡 | 亚洲一区二区视频在线播放 | 国产一级片91| 成人在线视频免费观看 | 日本在线精品视频 | 成av人电影在线 | 欧美日韩不卡 | www.99热| 在线观看av中文字幕 | 久久久久久久久91 | 国产精品久久久久久久粉嫩 | 国产一级成人 | 色啪网| 国内自拍视频在线观看 | 午夜影视 | 国产一区 日韩 | 精品久久影院 | 久久久妇女国产精品影视 | 国产精品久久久久久婷婷天堂 | 欧美一级电影免费 | 日韩一级黄色片 | 久久久成人精品 | 丁香久久 | 日韩视频在线一区 | 国产婷婷色一区二区三区 | 欧美日韩电影在线 | 在线伊人 | 国产精品久久久亚洲 | 久久精品免费 | 久久爆操|