当前位置: 首页 > news >正文

基于.NET的Windows窗体编程之WinForms对话框

在日常开发中,有时候需要弹出对话框,供用户选择使用,如字体对话框,颜色对话框等,今天我们一些简单的小例子,简述基于.NET的Windows窗体编程中常见对话框的使用,仅供学习分享使用,如有不足之处,还请指正。

image

 

概述

 

在使用某些软件时,经常会看到,点击一个按钮,然后弹出对话框,让用户选择某些内容,而这些弹出的对话框所包含的内容,通常是特定的内容,如保存文件,打开文件等对话框。WinForms框架中内置的常见对话框,主要有以下几种:

  • ColorDialog,颜色选择对话框。
  • FolderBrowserDialog,文件夹浏览对话框。
  • FontDialog,字体选择对话框。
  • OpenFileDialog,打开文件对话框。
  • SaveFileDialog,保存文件对话框。

 

接下来将逐项介绍各个对话框的场景用法。

 

ColorDialog

 

ColorDialog 组件是一个预配置的对话框,允许用户从调色板中选择颜色,并将自定义颜色添加到该调色板。该对话框包含两个部分,一部分显示基本颜色,另一部分允许用户定义自定义颜色。ColorDialog对话框的关键属性如下所示:

  • Color,用于获取或设置对话框中选择的颜色。
  • AllowFullOpen,是否允许自定义颜色,如果AllowFullOpen属性为false,那么“定义自定义颜色”按钮将被禁用,用户只能使用调色板中的预定义颜色;如果AllowFullOpen属性为true,则允许用户定义自定义颜色。
  • SolidColorOnly,是否仅显示单一颜色,如果SolidColorOnly属性设置为true,则用户无法选择抖动颜色,只能选择纯色。
  • ShowDialog,所有的Dialog都需要通过此方法来显示对话框,返回DialogResult类型的值,如果点击了确定,则返回DialogResult.OK,如果点击了取消,则返回DialogResult.Cancel。
  • ShowHelp,是否显示帮助按钮,如果ShowHelp属性设置为true,对话框中会显示一个“帮助”按钮。 当用户单击“帮助”按钮时, ColorDialog 将引发组件的 HelpRequest 事件。
  • AnyColor,任何颜色,当AnyColor属性设置为 true 时,对话框将在基本颜色集中显示所有可用颜色。 

 

为了更好的演示ColorDialog的功能,首先我们在Form表单中添加一个按钮,并命名为btnColor,接下来在按钮事件btnColor_Click中创建ColorDialog,并在弹出的颜色对话框中选择颜色,并将颜色设置到Lable的背景色上,具体代码如下所示:

private void btnColor_Click(object sender, EventArgs e)
{ColorDialog colorDialog = new ColorDialog();colorDialog.AllowFullOpen = true;colorDialog.ShowHelp = true;if (colorDialog.ShowDialog() == DialogResult.OK){this.lblContent.Text = colorDialog.Color.ToString();this.lblContent.BackColor = colorDialog.Color;}
}

运行示例,如下所示:

image

 

FontDialog

 

FontDialog 组件是一个预配置的对话框,主要用于选择字体。它是用于公开系统上当前安装的字体的标准 Windows 字体 对话框。默认情况下,对话框显示字体、字体样式和大小的列表框;“删除线”和“下划线”等效果的复选框;脚本的下拉列表;以及字体显示方式的示例。FontDialog字体选择对话框的关键属性,主要有以下几个:

  • Font,获取或设置对话框选择的字体,此属性设置字体、样式、大小、脚本和效果;例如 Arial, 10pt, style=Italic, Strikeout
  • Color,获取或设置对话框选择的颜色,如果没有显示颜色选择列表,则返回默认Color.Black。
  • ShowColor,字体对话框是否显示颜色选择列表,默认为false。
  • ShowApply,是否显示Apply按钮,默认为false。
  • ShowEffects,是否显示字体的效果,默认为true。

 

为了更好的演示FontDialog的功能,首先我们在Form表单中添加一个按钮,并命名为btnFont,接下来在按钮事件btnFont_Click中创建FontDialog,并在弹出的颜色对话框中选择字体,颜色,并将字体,颜色设置到Lable上,具体代码如下所示:

private void btnFont_Click(object sender, EventArgs e)
{FontDialog fontDialog = new FontDialog();fontDialog.ShowColor = true;fontDialog.ShowApply = true;fontDialog.ShowEffects = true;if (fontDialog.ShowDialog() == DialogResult.OK){this.lblContent.Font = fontDialog.Font;this.lblContent.ForeColor = fontDialog.Color;}
}

运行示例,效果如下所示:

image

 

OpenFileDialog

 

OpenFileDialog 组件是一个预配置的对话框,它与 Windows 操作系统公开的“打开文件”对话框相同。使用OpenFileDialog,主要用于选择需要打开的文件,不过需要编写自己的文件打开逻辑。OpenFileDialog文件打开对话框的关键属性如下所示:

  • Multiselect ,设置是否可以在打开的对话框中选择多个文件。
  • ShowReadOnly,设置是否显示“以只读方式打开(R)”复选框。
  • ReadOnlyChecked, 指示“以只读方式打开(R)”复选框是否勾选。
  • ShowHiddenFiles,设置是否显示隐藏文件或系统文件。
  • ShowHelp,设置是否显示帮助按钮。
  • Title,设置弹出文件选择框的标题。
  • Filter ,属性设置当前文件名筛选器字符串,该字符串确定对话框中的“类型文件”框中显示的选项。
  • FileName,文件打开对话框选择的文件。如果Multiselect属性为true,则可以通过FileNames属性获取选择的多个文件。
  • InitialDirectory,用于设置默认打开目录。
  • DefaultExt,获取或设置文件保存对话的默认扩展名,设置是不需要带因为的点号分隔符。
  • AddExtension,用户忘记写文件后缀时是否自动添加后缀,默认为true。

 

为了更好的演示OpenFileDialog 的功能,首先我们在Form表单中添加一个按钮,并命名为btnOpenFile,接下来在按钮事件btnOpenFile_Click中创建OpenFileDialog ,并在弹出的打开文件对话框中选择文件,点击确定按钮后将文件内容显示在文件框中,具体代码如下所示:

private void btnOpenFile_Click(object sender, EventArgs e)
{OpenFileDialog openFileDialog = new OpenFileDialog();openFileDialog.Multiselect = false;openFileDialog.ShowReadOnly = true;openFileDialog.ShowHiddenFiles = false;openFileDialog.Title = "选择打开的文件";openFileDialog.ShowHelp = true;openFileDialog.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";if (openFileDialog.ShowDialog() == DialogResult.OK){string fileName = openFileDialog.FileName;if (File.Exists(fileName)){string content = File.ReadAllText(fileName);this.txtContent.Text = content;}}
}

运行示例,如下所示:

image

说明,Filter字符串包含对文件过滤器的描述,格式为“文件描述|表达式”;Filter中表达式支持多个文件过滤器,格式为“文件描述1|表达式1,表达式2,表达式3”;同时Filter支持多个文件类型之间的切换,格式为“文件描述1|表达式1|文件描述2|表达式2|文件描述3|表达式3”,示例如下:

  • Text files (*.txt)|*.txt|All files (*.*)|*.*
  • Image Files(*.BMP;*.JPG;*.GIF)|*.BMP;*.JPG;*.GIF|All files (*.*)|*.*
  • JPEG(*.jpeg)|*.jpeg|PNG(*.png)|*.png|All files (*.*)|*.*

 

SaveFileDialog

 

SaveFileDialog 组件是一个预配置的对话框, 它与 Windows 使用的标准“保存文件”对话框相同。SaveFileDialog主要用于保存文件,不过在使用 SaveFileDialog 组件时,必须编写自己的文件保存逻辑。SaveFileDialog文件保存对话框的关键属性和OpenFileDialog非常相似。

 

为了更好的演示SaveFileDialog 的功能,首先我们在Form表单中添加一个按钮,并命名为btnSaveFile,接下来在按钮事件btnSaveFile_Click中创建SaveFileDialog ,并在弹出的文件保存对话框中选择文件,点击确定按钮后将文本框中的内容保存到文件中,具体代码如下所示:

private void btnSaveFile_Click(object sender, EventArgs e)
{SaveFileDialog saveFileDialog = new SaveFileDialog();saveFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);saveFileDialog.AddExtension = true;saveFileDialog.DefaultExt = "txt";saveFileDialog.Title = "选择保存的文件";saveFileDialog.Filter = "文本文件(*.txt)|*.txt|所有文件(*.*)|*.*";if (saveFileDialog.ShowDialog() == DialogResult.OK){string fileName = saveFileDialog.FileName;File.WriteAllText(fileName, this.txtContent.Text);}
}

运行示例,效果如下所示:

image

 

FolderBrowserDialog

 

FolderBrowserDialog组件是用于浏览和选择文件夹的模态对话框。它显示一个界面,用户可以浏览并选择文件夹或创建新文件夹,是 OpenFileDialog 组件的补充。所以若要选择文件,而不是文件夹,请使用 OpenFileDialog 组件。FolderBrowserDialog组件的关键属性如下所示:

  • RootFolder,确定将在对话框的树视图中显示的最顶层文件夹和任何子文件夹,它是Environment.SpecialFolder枚举类型。
  • SelectedPath ,获取对话框中所选文件夹的路径。
  • Description ,指定显示在文件夹浏览器树视图顶部的文本字符串。
  • UseDescriptionForTitle,是否将Description设置到对话框的Title。
  • ShowNewFolderButton,是否显示新增文件夹按钮。

 

为了更好的演示FolderBrowserDialog的功能,首先我们在Form表单中添加一个按钮,并命名为btnBrowser,接下来在按钮事件btnBrowser_Click中创建FolderBrowserDialog,并在弹出的文件夹浏览对话框中选择文件夹,点击确定按钮后将选择的文件夹目录显示在文本框中,具体代码如下所示:

private void btnBrowser_Click(object sender, EventArgs e)
{FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog();folderBrowserDialog.Description = "this is a folder browser dialog";folderBrowserDialog.UseDescriptionForTitle = true;folderBrowserDialog.RootFolder = Environment.SpecialFolder.MyDocuments;folderBrowserDialog.ShowNewFolderButton = true;if (folderBrowserDialog.ShowDialog() == DialogResult.OK){this.txtContent.Text = folderBrowserDialog.SelectedPath;}
}

运行示例,如下所示:

image

以上就是《基于.NET的Windows窗体编程之WinForms对话框》的全部内容,旨在抛砖引玉,一起学习,共同进步。

http://www.jsqmd.com/news/834487/

相关文章:

  • 金价从 1500 跌到 996,重庆人戴旧的镯子要不要趁现在出手? - 福正美黄金回收
  • 连云港上门黄金回收 六大正规品牌 全域 3 区 3 县高价无套路变现指南 - 金掌柜黄金回收
  • 2026重庆装修公司推荐,省钱省心没套路 - 大渝测评
  • 浩卡联盟流量卡分销全攻略|浩卡官方推荐码 111666 注册教程 + 风控出单技巧,拿置顶最高权限 - 172号卡
  • 宿迁黄金回收哪家靠谱 全域上门高价回收 旧金 K 金铂金一站式变现 - 金掌柜黄金回收
  • 连云港黄金回收哪家靠谱 全域上门高价回收 旧金 K 金铂金一站式变现 - 金掌柜黄金回收
  • superpowers 目前 skills/ 目录下 14 个 skills 的逐个解读
  • #嵩县汽车贴膜抖音热门门店横向测评:5家本地店,谁更值得选 - 贴膜攒钱买霍希
  • 2026年合肥性价比高的App开发推荐榜单,让你轻松选择优质产品 - 软件测评师
  • 泰州上门黄金回收 六大正规品牌 全域三区三市高价无套路变现 - 金掌柜黄金回收
  • 一次线上慢查询,竟然查出了 MySQL 溢出页问题
  • 金价跌到996,我跑了六家店把金镯子卖了——成都黄金回收实录 - 福正美黄金回收
  • 淮安黄金回收 全区域上门高价回收 正规无套路旧金变现指南 - 金掌柜黄金回收
  • 回收价报得越高,越容易踩坑——2026年南昌卖金避坑实录 - 福正美黄金回收
  • 996的牌价,1500的高位喊不回来了——重庆金饰脱手亲历记 - 福正美黄金回收
  • 宿迁黄金回收 全区域上门高价回收 正规无套路旧金变现指南 - 金掌柜黄金回收
  • 泰州黄金回收哪家靠谱 全域上门高价回收 旧金 K 金铂金一站式变现 - 金掌柜黄金回收
  • 连云港黄金回收 全区域上门高价回收 正规无套路旧金变现全攻略 - 金掌柜黄金回收
  • 手里攥着金条手镯,金价从1500跌到996,回收账单里暗藏什么玄机 - 福正美黄金回收
  • 有关电的一些知识总结3
  • 淮安上门黄金回收 六大正规品牌 全域 3 区 3 县高价无套路变现 - 金掌柜黄金回收
  • 2026年GEO优化工具top5口碑榜:国内主流服务商综合实力专业解析 - 产业观察网
  • 2026年知网AI检测再翻车!手写论文竟被标红?过来人亲授三招破解攻略 - 降AI实验室
  • 扬州全区域上门黄金回收 六大正规品牌 全域 3 区 2 市 1 县直达高效变现 - 金掌柜黄金回收
  • 回收价高的不一定划算——我在成都跑了6家金店被坑出经验了 - 福正美黄金回收
  • 宿迁上门黄金回收 六大正规品牌 全域两区三县高价无套路变现 - 金掌柜黄金回收
  • 有关电的一些知识总结2
  • 如何在微信小程序云开发中配置自定义 API 鉴权权限规则?
  • 2026年4月项目用金属吊顶加工厂推荐,金属吊顶防火等级高更安全 - 品牌推荐师
  • 金价阴跌不止,南昌卖金前先打给福正美问问价 - 福正美黄金回收