对话框是Widows系统中的一种用来和使用者实现交互的特殊窗口。在Windows系统中,常见的对话框,根据使用方式和性质一般分成以下六种类型:文件打开对话框、文件保存对话框、字体选择对话框、颜色选择对话框和打印机设置对话框和文件打印预览对话框。至于这六个对话框的在Windows系统的表现形式和所起的具体作用,我想各位一定都很清楚了,这里也就不一一介绍了。
首先要明确的是C#语言本身并没有提供处理对话框的功能,所以C#处理对话框就必须借助"外力",而这种"外力"就是.Net框架提供给所有开发.Net平台应用程序的一个公用的类库--.Net FrameWork SDK。在.Net FrameWork SDK中的命名空间System.Windows.Forms中定义了六个类:OpenFileDialog类、SaveFileDialog类、FontDialog类、ColorDialog类、PrintPreviewDialog类和PrintDialog类。C#就是使用上述六个类来处理与对话框相关的操作的。其中C#利用OpenFileDialog类来处理与文件选择对话框相关操作;利用SaveFileDialog类处理和文件保存对话框相关操作;利用FontDialog类处理和字体选择对话框相关操作;利用ColorDialog类处理和颜色选择对话框相关操作;利用PrintPreviewDialog类处理和打印预览对话框相关操作和利用PrintDialog类处理和打印机设置对话框相关操作。

  C#在使用上述六种类来处理Windows系统常见的六种对话框时,其主要的步骤如下:

  1. 实例化上述类,即:创建上述类的实例。

  2. 初始化创建的实例,并显示。

  3. 处理对话框返回的数据。

  下面首先来介绍这六个类的组成结构。这六个类在结构上有相似之处,表现在某些类有很多名称、作用相同的组成成员。另外这六个类的方法结构都比较简单,其中最为重要的方法是"ShowDialog",其作用是都是显示对话框。
 一.文件选择对话框:

  在C#中创建的文件选择对话框其实就是OpenFileDialog类的实例。通过对设定
OpenFileDialog类的属性来定制文件选择对话框的式样和功能。OpenFileDialog类的主要属性如下表:
属性
 说明
 
AddExtension
 该值指示如果用户省略扩展名对话框是否自动在文件名中添加扩展名。
 
CheckFileExists
 该值指示如果用户指定不存在的文件名对话框是否显示警告。
 
CheckPathExists 
 该值指示如果用户指定不存在的路径对话框是否显示警告。
 
DefaultExt 
 获取或设置默认文件扩展名。
 
DereferenceLinks
 该值指示对话框是否返回快捷方式引用的文件的位置或者是否返回快捷方式
 
FileName 
 字符串,获取或设置一个包含在文件对话框中选定的文件名的字符串。
 
FileNames 
 字符串数组,获取对话框中所有选定文件的文件名。
 
Filter 
 字符串,获取或设置当前文件名筛选器字符串该字符串决定对话框的"另存为文件类型"或"文件类型"框中出现的选择内容。
 
FilterIndex 
 整型,获取或设置文件对话框中当前选定筛选器的索引。
 
InitialDirectory 
 字符串,获取或设置文件对话框显示的初始目录。
 
Multiselect 
 布尔型,该值指示对话框是否允许选择多个文件。
 
ReadOnlyChecked 
 布尔型,该值指示是否选定只读复选框。
 
RestoreDirectory 
 布尔型该值指示对话框在关闭前是否还原当前目录。
 
ShowHelp
 布尔型,该值指示文件对话框中是否显示"帮助"按钮。
 
ShowReadOnly
 布尔型,该值指示对话是否包含只读复选框。
 
Title 
 字符串,获取或设置文件对话框标题。

  C#通过调用OpenFileDialog类实例的ShowDialog方法显示创建的实例,这样一个文件选择对话框就显示出来了。

  下列代码的作用在C#中通过创建一个OpenFileDialog实例,并设定此实例的各个属性值,来定制一个可以选择多个文件的文件选择对话框,并且把使用此对话框选择的多个文件名称通过提示框显示出来。请各位读者注意具体的实现方法:
DialogResult d = openFileDialog1.ShowDialog();

if (d == DialogResult.OK)

{

string[] fileNames = openFileDialog1.FileNames;

string fileNameString = string.Empty;

foreach (string s in fileNames)

{

fileNameString = fileNameString + s + "\n";

}

MessageBox.Show(fileNameString);

}

下图是上述代码定制的打开文件对话框的模样:

  下图是上述程序中以提示框显示经过下图中所示的文件选择对话框选择的数据,即选择的多个文件名称:

二.文件保存对话框:

  C#中创建文件保存对话框是使用SaveFileDialog类,SaveFileDialog类的结构OpenFileDialog类的结构非常相似。下表是SaveFileDialog类的主要属性及其说明:
属性 
 说明
 
AddExtension 
 该值指示如果用户省略扩展名,对话框是否自动在文件名中添加扩展名。
 
CheckFileExists
 该值指示如果用户指定不存在的文件名,对话框是否显示警告。
 
CheckPathExists
 该值指示如果用户指定不存在的路径,对话框是否显示警告。
 
CreatePrompt
 该值指示如果用户指定不存在的文件,对话框是否提示用户允许创建该文件。
 
DefaultExt 
 获取或设置默认文件扩展名。
 
DereferenceLinks 
 该值指示对话框是否返回快捷方式引用的文件的位置,或者是否返回快捷方式
 
FileName 
 获取或设置一个包含在文件对话框中选定的文件名的字符串。
 
FileNames
 获取对话框中所有选定文件的文件名。
 
Filter 
 获取或设置当前文件名筛选器字符串,该字符串决定对话框的"另存为文件类型"或"文件类型"框中出现的选择内容。
 
FilterIndex
 获取或设置文件对话框中当前选定筛选器的索引。
 
InitialDirectory 
 获取或设置文件对话框显示的初始目录。
 
OverwritePrompt 
 该值指示如果用户指定已存在的文件名,"另存为"对话框是否显示警告。
 
RestoreDirectory 
 该值指示对话框在关闭前是否还原当前目录。
 
ShowHelp 
 该值指示文件对话框中是否显示"帮助"按钮。
 
Title 
 获取或设置文件对话框标题。

  三.字体选择对话框:

 C#中创建字体选择对话框是通过FontDialog类,FontDialog类结构也不复杂,和上面介绍的二个类也有很多相似之处,具体如下表所示:

属性
 说明
 
AllowScriptChange 
 指示用户能否更改
 
AllowSimulations
 指示对话框是否允许图形设备接口
 
AllowVectorFonts 
 指示对话框是否允许选择矢量字体。
 
AllowVerticalFonts 
 指示对话框是既显示垂直字体又显示水平字体,还是只显示水平字体。
 
Color 
 获取或设置选定字体的颜色。
 
FixedPitchOnly 
 指示对话框是否只允许选择固定间距字体。
 
Font 
 获取或设置选定的字体。
 
FontMustExist
 指示对话框是否指定当用户试图选择不存在的字体或样式时的错误条件。
 
MaxSize
 获取或设置用户可选择的最大磅值。
 
MinSize
 获取或设置用户可选择的最小磅值。
 
ScriptsOnly
 示对话框是否允许为所有非指
 
ShowApply 
 指示对话框是否包含"应用"按钮。
 
ShowColor 
 指示对话框是否显示颜色选择。
 
ShowEffects
 指示对话框是否包含允许用户指定删除线、下划线和文本颜色选项的控件。
 
ShowHelp 
 指示对话框是否显示"帮助"按钮。

  四.颜色选择对话框:

 C#中创建颜色选择对话框是通过ColorDialog类,ColorDialog类结构最为简单,具体如下表所示:
属性 
 说明
 
AllowFullOpen 
 指示用户是否可以使用该对话框定义自定义颜色。
 
AnyColor
 指示对话框是否显示基本颜色集中可用的所有颜色。
 
Color
 获取或设置用户选定的颜色。
 
CustomColors 
 获取或设置对话框中显示的自定义颜色集。
 
FullOpen 
 指示用于创建自定义颜色的控件在对话框打开时是否可见。
 
ShowHelp
 指示在颜色对话框中是否显示"帮助"按钮。
 
SolidColorOnly
 指示对话框是否限制用户只选择纯色。

 五.打印机设置对话框:

  C#中创建打印机设置对话框是通过PrintDialog类,下表是PrintDialog类的常用属性及其说明:
属性
 说明
 
AllowPrintToFile
 指示是否启用"打印到文件"复选框。
 
AllowSelection 
 获取或设定一个值,指示是否启用了页码范围选项按钮。
 
AllowSomePages
 指示是否启用"页"选项按钮。
 
Document
 获取或设置一个值,指示用于获取
 
PrinterSettings 
 获取或设置该对话框要修改的
 
PrintToFile
 指示"打印到文件"复选框是否选中。
 
ShowHelp 
 指示是否显示"帮助"按钮。
 
ShowNetwork
 指示是否显示"网络"按钮。

  六.打印预览对话框:

  C#中创建打印机预览对话框是通过PrintPreviewDialog类,打印机预览对话框其实也可以看成是一个窗体,因为它拥有做为一个窗体所拥有的所有属性,所以PrintPreviewDialog类是本文介绍的所有类中最为复杂的一个。下表是和打印预览对话框最为相关的属性及其说明:
属性 
 说明
 
AcceptButton
 获取或设置当用户按
 
DataBindings
 为该控件获取数据绑定。
 
DialogResult
 获取或设置窗体的对话框结果。
 
Document
 获取或设置要预览的文档。
 
Enabled
 指示是否启用该控件。
 
FormBorderStyle
 获取或设置窗体的边框样式。
 
Height
 获取或设置控件的高度。
 
HelpButton
 指示是否应在窗体的标题框中显示"帮助"按钮。
 
Icon 
 获取或设置窗体的图标。
 
MaximizeBox 
 指示是否在窗体的标题栏中显示最大化按钮。
 
MaximumSize
 获取或设置窗体可调整到的最大大小。
 
MinimizeBox 
 指示是否在窗体的标题栏中显示最小化按钮。
 
MinimumSize 
 获取窗体可调整到的最小大小。
 
Name 
 获取或设置控件的名称。
 
OwnedForms 
 获取
 
ShowInTaskbar
 指示是否在
 
Size
 获取或设置窗体的大小。
 
StartPosition 
 获取或设置运行时窗体的起始位置。
 
TabIndex 
 获取或设置在控件的容器的控件的
 
TopMost
 指示窗体是否应显示为应用程序的最顶层窗体。
 
Visible 
 指示该控件是否可见。
 
Width 
 获取或设置控件的宽度。
 
WindowState
 获取或设置窗体的窗口状态。

  下列代码在C#中定制一个打印预览对话框:
在 “打印预览” 的单击事件里写:
this.printPreviewDialog1.Document = this.printDocument1;

printPreviewDialog1.ShowDialog();

  下图是上述代码定制的打印预览对话框的模样:

 七.具体的使用方法:

  至此已经介绍了这六个类的组成结构和大致的用法,下面就通过编写一个完成的示例来更深入的掌握这些类的使用方法。在下面介绍的示例中,将使用到前面介绍的四个类,这个示例的功能是通过文件选择对话框打开文本文件,并通过文本框来显示文本文件的内容,使用字体对话框来设定文本框中的字体和前景色,使用颜色对话框来设定文本对话框的背景色。最后使用文件保存对话框把修改的文本框中的文字另存为一个文本文件。通过对这个示例,我们将更深入的掌握Visual Basic .Net中对话框的使用方法,以下是此示例的具体实现步骤:

  1. 启动C#

  2. 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框。

  3. 将【项目类型】设置为【C# 项目】。

  4. 将【模板】设置为【Windows应用程序】。

  5. 在【名称】文本框中输入【全面掌握对话框】。

  6. 在【位置】的文本框中输入【E:\ C#项目】,然后单击【确定】按钮,这样在"E:\ C#项目"目录中就产生了名称为"全面掌握对话框"的文件夹,里面存放的是创建的"全面掌握对话框"的项目文件。

  7. 把C#的当前窗口切换到【Form1. C#(设计)】窗口,并从【工具箱】中的【Windows窗体组件】选项卡中按照如下顺序往Form1窗体中拖入下列组件:

  一个TextBox组件,名称为TextBox1,用以显示、编辑文本文件。
  四个Button组件,名称分别为Button1、Button2、Button3和Button4。程序中通过其Click事件分别实现设定文本框的字体、颜色和读取、保存文本等操作。
  一个SaveFileDialog组件,名称为SaveFileDialog1,用以创建文件保存对话框。
  一个OpenFileDialog组件,名称为OpenFileDialog1,用以创建文件打开对话框。
  一个FontDialog组件,名称为FontDialog1,用以创建字体对话框。
  一个ColorDialog组件,名称为ColorDialog,用以创建颜色对话框。

转载于:https://www.cnblogs.com/jinmingjie/archive/2011/06/14/2080393.html

分析C#中Dialog控件(转)相关推荐

  1. 分析SpinnerActivityTest中有关控件操作以及UI线程问题

    首先说明,SpinnerActivityTest是官方给的单元测试sample. 继承自ActivityInstrumentationTestCase2进行activity测试.涉及到对控件的操作时比 ...

  2. android中倒计时控件CountDownTimer分析

    android中倒计时控件CountDownTimer分析1 示例代码 new CountDownTimer(10000, 1000) {public void onTick(long millisU ...

  3. Asp.Net中验证控件简单分析

    为了实现验证,.net提供了一个javascript脚本,当我们生成一个asp.net页面时,通过查看页面源代码的方式,会发现都调用了下面一个javascript文件: <script src= ...

  4. android include 控件详解,Android开发中include控件用法分析

    本文实例讲述了Android开发中include控件用法.分享给大家供大家参考,具体如下: 我们知道,基于Android系统的应用程序的开发,界面设计是非常重要的,它关系着用户体验的好坏.一个好的界面 ...

  5. .net dataGridView当鼠标经过时当前行背景色变色;然后【给GridView增加单击行事件,并获取单击行的数据填充到页面中的控件中】...

    1.首先在前台dataGridview属性中增加onRowDataBound属性事件 2.然后在后台Observing_RowDataBound事件中增加代码 protected void Obser ...

  6. Tips/Tricks#0:母版页中对控件ID的处理

    注:此系列记录在我实际开发中遇到的问题和收藏一些技巧文章. 本篇技巧和诀窍记录的是:母版页中对控件ID的处理. 一.问题提出 由于总体排版和设计的需要,我们往往创建母版页来实现整个网站的统一性,最近我 ...

  7. VS2008向工具箱中添加控件解决 未能实例化 设计时授权

    VS2010同理 VS2008向工具箱中添加串口控件,步骤为工具--选择工具箱项,在出现的选择工具箱项窗体中选择COM组件勾选Microsoft Communications Control, ver ...

  8. VS2010向工具箱中添加控件解决 Microsoft Communications Control,未能实例化 设计时授权

    第一步是Visual Studio 2010中添加注册控件的方法 在VC6.0中添加ADO Data Control等控件是很很方便的,"Project" --> " ...

  9. .NET中添加控件数组

    作者:cuike519的专栏   http://blog.csdn.net/cuike519/ 添加控件数组 在.NET里面我好像没有找到有关于控件数组的说明,但是前两天偶在网上看到了一篇关于如何在. ...

最新文章

  1. java 处理 url_Java URL处理 - Java 教程 - 自强学堂
  2. 开源的视频笔记合集: 陌溪 / LearningNotes
  3. eclipse/myeclipse中如何开启断言调试代码
  4. some understanding of《Inferring Decision Trees Using the Minimum Description Length Principle*》
  5. 标准库类型String
  6. 【剑指offer】【leetcode精选题集】【Java】剑指offer题解合集 更新中
  7. stl源码剖析_STL源码剖析 阅读笔记(二)allocator
  8. 当前超级计算机的应用方兴未艾,四川省若尔盖县高三下学期语文模拟卷(五)
  9. java重载能否发生多次,java - 在Java中重载和多次调度 - SO中文参考 - www.soinside.com...
  10. Reflector 3在录制中如何添加自己的声音
  11. 倍福--ModbusTCP配置
  12. 数据结构韩顺平版(2)
  13. 微信小程序 live-player 无声音
  14. shiny-server部署
  15. 蓝桥杯龟兔赛跑预测Python(超详细!!)
  16. scaner从外网到内网域渗透笔记
  17. Nsstring中搜索方法rangeOfString
  18. SAP自动检验批应用中检验开始日期和检验结束日期的产生逻辑
  19. TensorFlow-gpuCould not load dynamic library ‘cudart64_102.dll‘; dlerror: cudart64_102.dll not found
  20. Elasticsearch集群类型和选举策略

热门文章

  1. AI学习笔记(十四)CNN之图像分割
  2. linux python指令大全,Linux常用指令
  3. mysql不支持-_MySQL不支持的特性
  4. python 函数图解_Python函数说明(一)
  5. java js对象转字符串数组_js 转json格式的字符串为对象或数组(前后台)的方法
  6. 华为 seco pc版下载_狼人之间电脑版下载-狼人之间pc版下载v1.8 官方版
  7. RHCSA学习笔记-基础操作命令
  8. 《构建高性能Web站点》观后感
  9. 怎么在cmd中安装python库_cmd中安装python库时出现的错误
  10. css 下划线_css学习