首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> C# >> 關於C#

C# 模式視窗體詳解

     編輯:關於C#

概述

模式視窗體即對話框,使用者必須完成操作或關閉後才能返回父視窗。本文專注 .NET WinForms 中有效使用模式視窗體及常見問題解決。

屬性設定專業化

以 VS2005「選項」對話框為標準,透過設計器屬性視窗設定:

  • StartPosition = CenterParent:父視窗置中顯示
  • HelpButton = true:標題列顯示說明按鈕
  • MaximizeBox = false; MinimizeBox = false:隱藏最大化/最小化
  • ShowIcon = false:不顯示圖示
  • ShowInTaskbar = false:不佔用工作列空間
  • FormBorderStyle = FixedDialog:固定對話框邊框,禁止拖曳調整大小
  • ControlBox = false:隱藏控制按鈕(視需求)

按鍵綁定:AcceptButton 與 CancelButton

this.AcceptButton = this.buttonOK;  // Enter 鍵觸發
this.CancelButton = this.buttonCancel; // Esc 鍵觸發

注意:焦點在其他按鈕時 Enter 觸發該按鈕;快捷鍵操作無按下視覺效果。

模式視窗開啟與關閉

開啟方式

OptionForm form = new OptionForm();
form.ShowDialog(this); // 指定擁有者,模式視窗內可透過 this.Owner 存取父視窗
// form.ShowDialog(); // 無擁有者,Owner 為 null

關閉返回值

ShowDialog 回傳 DialogResult 列舉:OK、Cancel、Yes、No、Abort、Retry、Ignore、None。

阻止關閉的優雅寫法

傳統寫法註冊三個事件(FormClosing、buttonOK_Click、buttonCancel_Click)。優化:

  1. 建構函數設定按鈕 DialogResult 屬性:buttonOK.DialogResult = DialogResult.OK; buttonCancel.DialogResult = DialogResult.Cancel;
  2. 僅註冊 buttonOK_Click,驗證失敗時設 this.DialogResult = DialogResult.None; 阻止關閉

代碼減少一半,邏輯更清晰。

.NET Framework 內建常用對話框

類別功能基類可繼承
MessageBox訊息框(靜態 Show 方法多重載)—否
OpenFileDialog開啟檔案FileDialog否
SaveFileDialog儲存檔案FileDialog否
FolderBrowserDialog選擇資料夾CommonDialog否
FontDialog字型設定CommonDialog是
ColorDialog顏色設定CommonDialog是
PageSetupDialog列印頁面設定CommonDialog否
PrintDialog列印設定CommonDialog否
PrintPreviewDialog列印預覽Form是

FileDialog 繼承 CommonDialog,均可透過 ShowDialog() 模式開啟。PrintPreviewDialog 繼承 Form,除模式外亦可 Show() 非模式開啟。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved