对话框中我们常用了以下几种:

  1、文件对话框(FileDialog) 它又常用到两个:

   打开文件对话框(OpenFileDialog)

   保存文件对话(SaveFileDialog)

  2、字体对话框(FontDialog)

  3、颜色对话框(ColorDialog)

  4、打印预浏对话框(PrintPreviewDialog)

  5、页面设置(PrintDialog)

  6、打印对话框(PrintDialog)
  还有更多,有时间的网友可以看看MSDN。下面我们一个个来介绍。在介绍的过程中我用到了一个自己开发的类:File,主要是文件操作的。

  文件对话框(FileDialog)

  一、打开文件对话框(OpenFileDialog)

1、OpenFileDialog控件有以下基本属性

InitialDirectory

对话框的初始目录

Filter

要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"

FilterIndex

在对话框中选择的文件筛选器的索引,如果选第一项就设为1

RestoreDirectory

控制对话框在关闭之前是否恢复当前目录

FileName

第一个在对话框中显示的文件或最后一个选取的文件

Title

将显示在对话框标题栏中的字符

AddExtension

是否自动添加默认扩展名

CheckPathExists

在对话框返回之前,检查指定路径是否存在

DefaultExt

默认扩展名

DereferenceLinks

在从对话框返回前是否取消引用快捷方式

ShowHelp

启用"帮助"按钮

ValiDateNames

控制对话框检查文件名中是否不含有无效的字符或序列

  2、 OpenFileDialog控件有以下常用事件

FileOk

当用户点击"打开"或"保存"按钮时要处理的事件

HelpRequest

当用户点击"帮助"按钮时要处理的事件

  3、OpenFileDialog的效果如下:

  可以用以下代码来实现上面这个对话框:

private void openFileDialogBTN_Click(object sender, System.EventArgs e){
OpenFileDialog openFileDialog=new OpenFileDialog();
openFileDialog.InitialDirectory="c:\\";//注意这里写路径时要用c:\\而不是c:\
openFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";
openFileDialog.RestoreDirectory=true;
openFileDialog.FilterIndex=1;
if (openFileDialog.ShowDialog()==DialogResult.OK)
{
fName=openFileDialog.FileName;
File fileOpen=new File(fName);
isFileHaveName=true;
richTextBox1.Text=fileOpen.ReadFile();
richTextBox1.AppendText("");
}
}

  其中有用到了File()这个类,是我在程序用来执行文件操作,自己写的,在最后附了这个类的源码。有兴趣的网友可以自己分析。

二、保存文件对话框(SaveFileDialog)

  保存文件对话框控件有两种情况,一就是保存,二就是另存为,保存很简单,就是在文件已经打开的情况下的,再把文件写一篇,在这里我们主要讲另存为的情况(SaveAs)。

  1,SaveFileDialog控件的属性

Filter

要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"

FilterIndex

在对话框中选择的文件筛选器的索引,如果选第一项就设为1

RestoreDirectory

控制对话框在关闭之前是否恢复当前目录

AddExtension

是否自动添加默认扩展名

CheckFileExists

CheckPathExists

在对话框返回之前,检查指定路径是否存在

Container

控制在将要创建文件时,是否提示用户。只有在ValidateNames为真值时,才适用。

DefaultExt

缺省扩展名

DereferenceLinks

在从对话框返回前是否取消引用快捷方式

FileName

第一个在对话框中显示的文件或最后一个选取的文件

InitialDirector

对话框的初始目录

OverwritePrompt

控制在将要在改写现在文件时是否提示用户,只有在ValidateNames为真值时,才适用

ShowHelp

启用"帮助"按钮

Title

将显示在对话框标题栏中的字符

ValidateNames

控制对话框检查文件名中是否不含有无效的字符或序列

  2、SaveFileDialog事件如下:

FileOk

当用户点击"打开"或"保存"按钮时要处理的事件

HelpRequest

当用户点击"帮助"按钮时要处理的事件

  3、SaveFileDialog的效果如下:

4、用下例代码可以实现

private void saveAsDialogBTN_Click(object sender, System.EventArgs e)
{
SaveFileDialog saveFileDialog=new SaveFileDialog();
saveFileDialog.Filter="文本文件|*.*|C#文件|*.cs|所有文件|*.*";
saveFileDialog.FilterIndex=2;
saveFileDialog.RestoreDirectory=true;
if(saveFileDialog.ShowDialog()==DialogResult.OK)
{
if(saveFileDialog.ShowDialog()==DialogResult.OK)
{
fName=saveFileDialog.FileName;
File fSaveAs=new File(fName);
isFileHaveName=true; file://保存的文件有名字
fSaveAs.WriteFile(richTextBox1.Text);
}
}
}

  其实这些都可以在VS.NET的IDE环境中直接完成,为了说明问题,我还是一条条列也来了。当中用到了一个File的类库,下面是源程序:

  File.cs

using System;
using System.IO;
using System.Windows.Forms;
using System.Text;

namespace dialog
{
///
/// Summary description for File.
///
public class File
{
string fileName;
public File(string fileName)
{
this.fileName=fileName;
}

public string ReadFile()
{
try
{
StreamReader sr=new StreamReader(fileName,Encoding.Default);
string result=sr.ReadToEnd();
sr.Close();
return result;
}
catch(Exception e){MessageBox.Show(e.Message);}
return null;
}

public void WriteFile(string str)
{
try
{
StreamWriter sw=new StreamWriter(fileName,false,Encoding.Default);
sw.Write(str);
sw.Close();
}
catch(Exception e){MessageBox.Show(e.Message,"保存文件出错!");}
}
}
}

  字体对话框(FontDialog)

  在文字处理中,我们常用到字体,现在我们来做一个最常见的字体对话框。

  一、 字体对话框(FontDialog)常用属性

ShowColor

控制是否显示颜色选项

AllowScriptChange

是否显示字体的字符集

Font

在对话框显示的字体

AllowVerticalFonts

是否可选择垂直字体

Color

在对话框中选择的颜色

FontMustExist

当字体不存在时是否显示错误

MaxSize

可选择的最大字号

MinSize

可选择的最小字号

ScriptsOnly

显示排除OEM和Symbol字体

ShowApply

是否显示"应用"按钮

ShowEffects

是否显示下划线、删除线、字体颜色选项

ShowHelp

是否显示"帮助"按钮

  二、 字体对话框(FontDialog)的事件

Apply

当点击"应用"按钮时要处理的事件

HelpRequest

当点击"帮助"按钮时要处理的事件

  三、 字体对话框(FontDialog)的效果

  四、 实现代码

private void fontDialogBTN_Click(object sender, System.EventArgs e)
{
FontDialog fontDialog=new FontDialog();
fontDialog.Color=richTextBox1.ForeColor;
fontDialog.AllowScriptChange=true;
fontDialog.ShowColor=true;
if(fontDialog.ShowDialog()!=DialogResult.Cancel)
{
richTextBox1.SelectionFont=fontDialog.Font;//将当前选定的文字改变字体
}
}

  上面代码将选定的文本设置为当前FontDialog对话框中的字体。

  颜色对话框(ColorDialog)

  颜色拾取框也是我们常见的对话框之一,下面我们来看看在C#中是如何操作颜色对话框的呢?

  一、 颜色对话框(ColorDialog)的常见属性

AllowFullOpen

禁止和启用"自定义颜色"按钮

FullOpen

是否最先显示对话框的"自定义颜色"部份

ShowHelp

是否显示"帮助"按钮

Color

在对话框中显示的颜色

AnyColor

显示可选择任何颜色

CustomColors

是否显示自定义颜色

SolidColorOnly

是否只能选择纯色

  二、 颜色对话框(ColorDialog)的效果如下:

  三、 实现代码见下:

private void colorDialogBTN_Click(object sender, System.EventArgs e)
{
ColorDialog colorDialog=new ColorDialog();
colorDialog.AllowFullOpen=true;
colorDialog.FullOpen=true;
colorDialog.ShowHelp=true;
colorDialog.Color=Color.Black;//初始化当前文本框中的字体颜色,当用户在ColorDialog对话框中点击"取消"按钮
file://恢复原来的值
colorDialog.ShowDialog();
richTextBox1.SelectionColor=colorDialog.Color;
}

  实现颜色对话框(ColorDialog)很容易吧,其实不只是颜色对话框,C#也是很容易的,只要用心去学,都容易的。讲完了颜色对话框(ColorDialog),我们来讲打印和页面设置.

  三、 实现代码见下:

private void colorDialogBTN_Click(object sender, System.EventArgs e)
{
ColorDialog colorDialog=new ColorDialog();
colorDialog.AllowFullOpen=true;
colorDialog.FullOpen=true;
colorDialog.ShowHelp=true;
colorDialog.Color=Color.Black;//初始化当前文本框中的字体颜色,当用户在ColorDialog对话框中点击"取消"按钮
file://恢复原来的值
colorDialog.ShowDialog();
richTextBox1.SelectionColor=colorDialog.Color;
}

  实现颜色对话框(ColorDialog)很容易吧,其实不只是颜色对话框,C#也是很容易的,只要用心去学,都容易的。讲完了颜色对话框(ColorDialog),我们来讲打印和页面设置.
  页面设置(PageSetupDialog)

  其实页面设置(PageSetupDialog)没有太多的讲,既然讲到这里,我还是把PageSetupDialog中常用的属性列出来吧

  一、页面设置(PageSetupDialog)常见属性

AllowMargins

设置是否可以对边距的编辑

AllowOrientation

是否可以使用"方向"单选框

AllowPaper

设置是否可以对纸张大小的编辑

AllowPrinter

设置是否可以使用"打印机"按钮

Document

获取打印机设置的PrintDocument

MinMargins

允许用户选择的最小边距

  二、面设置(PageSetupDialog)的效果如下

  就这么简单啦,我们看看下面的吧,还有更重磅的东东呢?关于打印的。

  打印预浏及打印

  打印是我们在windows编程中常要用到的功能,在以前都是很麻烦工作,但在Microsoft .net Framework中打印是以组件提供给我们使用,不过还是点麻烦的,所以就专门写出来,供大家参改。

  一, 在.net环境中,说到打印,就不能不说PrintDocumet这个类,PrintDocument属于System.Drawing.Printing这个名字空间,PrintDocument这个类是实现打印的核心代码。

  如果要实现打印,就必需首先构造PrintDocument对象添加打印事件,
printDocument.PrintPage+=new PrintPageEventHandler(this.printDocument_PrintPage)
打印其实也是调用Graphics类的方法进行画图,下面这代码是根据MSDN上提供的例程改写的。MSDN打印例程地址:

  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemDrawingPrintingPrintDocumentClassTopic.asp ,有兴趣的网友可以参改一下。

  下面是我改写的printDocument_PrintPage:

private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
float linesPerPage=0;//页面的行号
float yPos=0;//打印字符串的纵向位置
int count=0;//行计数器
float leftMargin =e.MarginBounds.Left;//左边距
float topMargin=e.MarginBounds.Top;//上边距
string line=null;//行字符串
Color clr=richTextBox1.SelectionColor;//当前的打印颜色,在我这个程序没有实现不同颜色打印
SolidBrush b =new SolidBrush(clr);//刷子
fnt=richTextBox1.SelectionFont;//当前的打印字体
linesPerPage=e.MarginBounds.Height/fnt.GetHeight(e.Graphics);//每页可打印的行数
file://逐行循行打印一页
while(count<LINESPERPAGE&&((LINE=LINEREADER.READLINE())!=NULL))
{
yPos=topMargin+(count*fnt.GetHeight(e.Graphics));
e.Graphics.DrawString(line,fnt,b,leftMargin,yPos,new StringFormat());
count++;
}
file://如果该页打印完成而line不为空说明还有没完成的页面,发出下一次的打印事件,
file://在下一次的打印中lineReader会自动读取上次没有打印完的内容。lineReader可以记录当前读取的位置
if(line!=null)
e.HasMorePages=true;
else
e.HasMorePages=false;
}

  在这里可以完成整个打印任务。把printDocument_PrintPage构造好后,就可以打印和打印预浏。

  二、打印预浏对话框(PrintPreviewDialog)

  打印预浏控件是用来显示一个打印文档在打印后的效果。在打印预浏对话框中包含有,打印、缩放、单页或多页、关闭等按钮。对话框如下:

  打印预浏对话框没有太多的属性,最后通过ShowDialog()调用。上面的实现代码如下:

private void printPreviewBTN_Click(object sender, System.EventArgs e)
{
lineReader = new StringReader(richTextBox1.Text);
try
{
PrintPreviewDialog printPreviewDialog1=new PrintPreviewDialog();
printPreviewDialog1.Document=printDocument;
printPreviewDialog1.FormBorderStyle=FormBorderStyle.Fixed3D;
printPreviewDialog1.ShowDialog(this);
}
catch(Exception excep)
{
MessageBox.Show(excep.Message, "打印出错", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
}

  很简单的,只要你把PrintDocument_PrintPage()写好了,这里就很容易了。

  三、打印对话框(PrintDialog)

  1、打印对话框(PrintDialog)只要有以下属性:

AllowPrintToFile

禁止或使用"打印到文件"复选框

AllowSelection

禁止或使用"选定内容"单选框

AllowSomePages

禁止或使用"页"单选按钮

Document

从中获取打印机设置的PrintDocument

PrintToFile

打印到文件"复选框是否选中

ShowHelp

控制是否显示"帮助"按钮

ShowNetWork

控制是否显示"网络"按钮

  2、效果如下:

  3、用如下代码来实现:

private void printDialogBTN_Click(object sender, System.EventArgs e)
{
PrintDialog printDialog=new PrintDialog();
printDialog.Document=printDocument;
if(printDialog.ShowDialog()!=DialogResult.Cancel)
{
try
{
printDocument.Print();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}

  到此,所有的对话框都讲完了,头都大了吧。

  上述对话框,完全可以在vs.net的IDE环境中完成,这时为了说明问题,才分开一步步来讲。

  总结

  在我们的教程,共讲述了文件对话框(FileDialog)、字体对话框(FontDialog)、,颜色对话框(ColorDialog)、打印预浏对话框(PrintPreviewDialog)、页面设置(PrintDialog)、打印对话框(PrintDialog),这几个对话框,其中文件对话框(FileDialog)又有:打开文件对话框(OpenFileDialog)、保存文件对话(SaveFileDialog)这两个对话框。有了上述基础,大家可以很容易的写出一个简单的记事本。

转载于:https://www.cnblogs.com/arongbest/archive/2010/06/11/1756327.html

对话框Dialog总结(转)相关推荐

  1. Android 对话框(Dialog)大全

    Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如onCreateDialog(int),onPrepareDialog(int,Dialog),showDialog(int) ...

  2. Android项目实战(三十二):圆角对话框Dialog

    原文:Android项目实战(三十二):圆角对话框Dialog 前言: 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框. 对话框包括:1.圆角 2.app图标 , 提示文本,关闭对 ...

  3. Android对话框dialog大全(代码直接可用)

    Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...

  4. Android 对话框(Dialog)大全 建立你自己的对话框

    Android 对话框(Dialog)大全 建立你自己的对话框 创建对话框 一个对话框一般是一个出现在当前Activity之上的一个小窗口. 处于下面的Activity失去焦点, 对话框接受所有的用户 ...

  5. Android对话框dialog大全

    Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...

  6. java实用教程——组件及事件处理——对话框(dialog)

    对话框: import java.awt.event.ActionEvent;import java.awt.event.ActionListener; import java.awt.*; impo ...

  7. jQuery Mobile中对话框dialog的data-*选项

    全栈工程师开发手册 (作者:栾鹏) jQuery Mobile 所有data-*选项 jQuery Mobile中对话框dialog的data-*选项 带有 data-role="dialo ...

  8. Android 对话框(Dialog) 及 自定义Dialog

    Activities提供了一种方便管理的创建.保存.回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog( ...

  9. android 对话框大全,Android 对话框(Dialog)大全

    Activities提供了一种方便管理的建立.保存.回复的对话框机制,例如onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(i ...

  10. 圆角对话框Dialog

    转载自:https://www.cnblogs.com/xqxacm/p/6491531.html 项目中多处用到对话框,用系统对话框太难看,就自己写一个自定义对话框 对话框包括:1.圆角 2.app ...

最新文章

  1. 8月第2周中国五大顶级域名增4.1万 美国减6.8万
  2. 最长回文串--动态规划
  3. 在阿里云Kubernetes上运行SpringCloud示例PiggyMetrics
  4. VSTS 2010体验 - TFS 2010变化巨大
  5. SparkSQL高并发:读取存储数据库
  6. 问世十年,腾讯宣布重磅产品死亡:一代人的青春记忆!
  7. 奥斯卡“最佳国际电影”奖,《哪吒之魔童降世》申请出战!
  8. DG Lecture 2 part 2: points, vectors, directional derivative
  9. 杭州邮政编码一览表|杭州邮编|杭州邮编查询
  10. 贝叶斯分析好坏_贝叶斯分析基础——可信度、模型和参数
  11. 新浪微博开放平台第三方登陆请求授权出现错误码:21322(重定向地址不匹配)的解决方法
  12. VFIO代码分析(3)VFIO-PCI驱动2
  13. 人工神经元再进一步,存储记忆已成现实
  14. 【BUG】win10下VS中出现LINK : fatal error LNK1104: cannot open file “xx/xx.exe“的问题
  15. 张先轶博士(OpenBLAS开源项目发起人,PerfXLab创始人)的采访录,中关村管委会千帆计划之“创见新面孔”专题采访活动
  16. agv调度系统3.0技术介绍
  17. 《人类简史》——一场引人入胜的人类征途
  18. 中国第一代程序员列传 我的偶像
  19. 增益控制AGC | 雷达接收机 | 原理描述
  20. Linux中断申请之request_threaded_irq

热门文章

  1. dwcs6怎么添加搜索框_一文教会你微信小程序搜索怎么用、怎么优化
  2. 分块的单点修改查询区间和_模版 单点修改,区间查询
  3. Java jni 底层_Java中的native是如何实现的(JNI)
  4. 内地计算机科技学校,23所内地顶尖高校盘点!计算机学科哪家强?
  5. IntelliJ IDEA如何设置添加类时注释作者信息和日期时间
  6. python vscode_VScode || 为VScode配置python环境
  7. 安卓开发fragment之间的切换_Android开发必会的组件化技术—Android架构和提升必备...
  8. MetInfo最新版代码审计漏洞合集
  9. Python文件读写时的换行符与回车符
  10. HashMap Hashtable区别