vs.net 出来也很久了,感觉还可以。早一阵子,朋友让我帮他写两个打印程序,当中用了不少的对话,在查资料的时候看到国 外有一篇专门的文章介绍对话框的,就决定写这篇文章,让大家都有个好的起点。同时还着重介绍了打印那一部份,大家可以仔细研究一下,都说了很多了。现 在我们开发吧!
对话框中我们常用了以下几种:
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; namespace dialog public string readfile() public void writefile(string str) |
字体对话框(fontdialog)
在文字处理中,我们常用到字体,现在我们来做一个最常见的字体对话框。
一、 字体对话框(fontdialog)常用属性
| showcolor | 控制是否显示颜色选项 |
| allowscriptchange | 是否显示字体的字符集 |
| font | 在对话框显示的字体 |
| allowverticalfonts | 是否可选择垂直字体 |
| color | 在对话框中选择的颜色 |
| fontmustexist | 当字体不存在时是否显示错误 |
| maxsize | 可选择的最大字号 |
| minsize | 可选择的最小字号 |
| scriptsonly | 显示排除oem和symbol字体 |
| showapply | 是否显示"应用"按钮 |
| showeffects | 是否显示下划线、删除线、字体颜色选项 |
| showhelp | 是否显示"帮助"按钮 |
二、 字体对话框(fontdialog)的事件
| apply | 当点击"应用"按钮时要处理的事件 |
| helprequest | 当点击"帮助"按钮时要处理的事件 |
三、 字体对话框(fontdialog)的效果
![]() |


