引用自:http://www.cnblogs.com/bear-study-hard/archive/2006/03/09/346154.html;http://www.cnblogs.com/kingeric/archive/2007/07/25/831126.html
对于winform比较全面的介绍:
除了PrintPreviewDialog外,其他对话框类都派生于抽象基类CommonDialog,这个基类的方法可以管理Windows通用对话框。
对话框适用的场合:
1.要让用户选择和浏览要打开的文件,应使用OpenFileDialog。这个对话框可以配置为只允许选择一个文件,或可以选择多个文件。
2.使用SaveFileDialog,用户可以为要保存的文件指定一个文件名和浏览的路径。
3.PrintDialog用户选择一个打印机,并设置打印选项。
4.配置页面的边距,通常使用PageSetupDialog。
5.PrintViewDialog是在屏幕上进行打印预览的一种方法,并有一些选项如缩放。
6.FontDialog列出了所有已安装的Windows字体、样式和字号,以及各字体的预览效果,以便选择字体。
7.ColorDialog用于选择颜色。
文件对话框:
l OpenFileDialog:打开文件对话框
l SaveFileDialog:保存文件对话框
打开文件对话框
OpenFileDialog ofd = new OpenFileDialog();
ofd.ShowDialog();
会弹出一个打开文件的对话框。
通过修改对象的Title属性,可以更改对话框的标题
现在显示的是“打开”,做如下设置
ofd.Title = "设置后标题文字:)";
再次运行程序,我们就会看到相应的修改
我们还可以通过设置InitialDirectory属性来使打开文件对话框打开时在一个设置好的默认路径上。它的默认值是一个空字符串,表示用户的“我的文档”目录,第一次在应用程序中使用这个对话框时,就显示“我的文档”目录下的文件,第二次再打开对话框时,显示的目录就与上一次打开的文件所在的目录相同。
在实际使用的时候,不要写死一个路径,如果用户不存在这个路径会出现错误。为了获取特定的系统文件夹,可以使用System.Environment类的静态方法GetFolderPath()。该方法接受一个Environment.SpecialFolder枚举,其中可以定义要返回路径的哪个系统目录。
ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Templates);
设置文件过滤器用于打开文件对话框中显示特定类型的文件。
ofd.Filter = "Text Document(*.txt)|*.txt|All Files|*.*|我要显示的文件类型(*.exe)|*.exe";
设置错误的Filter值会产生一个运行异常System.ArgumentException和错误信息“The provided filter string is invalid”。过滤器前后也不允许有空格。
FilterIndex属性指定列表框中的默认选项。
设置文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名。
CheckPathExists:验证路径有效性
CheckFileExists:验证文件有效性
ofd.ValidateNames = true;
ofd.CheckPathExists = true;
ofd.CheckFileExists = true;
自定义帮助信息:
设置对象的ShowHelp属性可以出现一个帮助按钮,自定义帮助信息。
通过HelpRequest事件添加一个处理程序。
ofd.ShowHelp = true;
ofd.HelpRequest += new EventHandler(ofd_HelpRequest);
private void ofd_HelpRequest(object sender, EventArgs e)
{
MessageBox.Show("我自己定义的帮助信息:)");
}
单击帮助按钮就会显示我定义的帮助信息。
设置Multiselect属性可以使打开文件对话框打开多个文件。
通过如下判断可以得到打开文件对话框单击的是哪个按钮。
if(ofd.ShowDialog() == DialogResult.OK)
{
}
保存文件对话框:
使用Title属性设置对话框的标题。
文件扩展名:
AddExtension是一个布尔属性,它定义了文件扩展名是否应自动添加到用户输入的文件名上。如果用户已经输入了一个文件扩展名,就不会添加其它扩展名了。所以如果用户输入了文件名test,就保存文件test.txt,如果输入了test.txt,保存的文件仍是test.txt,而不是test.txt.txt。
如果用户没有输入文件扩展名,就使用DefaultExt属性设置的文件扩展名。如果这个属性为空,就使用当前选择的Filter中定义的文件扩展名。如果设置了Filter和DefaultExt,则不论Filter是什么,都使用Default。
同OpenFileDialog一样,具有ValidateNames、CheckFileExists和CheckPathExists三个属性,区别是对于SaveFileDialog,CheckFileExists的默认值是false,表示可以提供新文件名,进行保存。
如果设置CreatePrompt属性为true,就会询问用户是否要创建一个新文件。
如果设置OverwritePrompt属性为true,就会询问用户是否要覆盖一个已有的文件。
进行如下定义一个保存文件对话框后,我们通过如下功能可以实现一个另存为的功能:
SaveFileDialog sfd = new SaveFileDialog();
private void miFileSaveAs_Click(object sender, EventArgs e)
{
if(sfd.ShowDialog() == DialogResult.OK)
{
string fileName = sfd.FileName;
SaveFile(fileName);
}
}
protected void SaveFile(string fileName)
{
try
{
Stream stream = File.OpenWrite(fileName);
using(StreamWriter writer = new StreamWriter(stream))
{
writer.Write(textBox1.Text);
}
}
catch(IOException ex)
{
MessageBox.Show(ex.Message,"Simple Editor",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
}其中:
Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)||*.*"
FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
RestoreDirectory 控制对话框在关闭之前是否恢复当前目录
FileName 第一个在对话框中显示的文件或最后一个选取的文件
Title 将显示在对话框标题栏中的字符
AddExtension 是否自动添加默认扩展名
CheckPathExists 在对话框返回之前,检查指定路径是否存在
DefaultExt 默认扩展名
DereferenceLinks 在从对话框返回前是否取消引用快捷方式
ShowHelp 启用"帮助"按钮
ValiDateNames 控制对话框检查文件名中是否不含有无效的字符或序列
HelpRequest 当用户点击"帮助"按钮时要处理的事件
Filter 要在对话框中显示的文件筛选器,例如,"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*"
FilterIndex 在对话框中选择的文件筛选器的索引,如果选第一项就设为1
RestoreDirectory 控制对话框在关闭之前是否恢复当前目录
AddExtension 是否自动添加默认扩展名
CheckFileExists
CheckPathExists 在对话框返回之前,检查指定路径是否存在
Container 控制在将要创建文件时,是否提示用户。只有在ValidateNames为真值时,才适用。
DefaultExt 缺省扩展名
DereferenceLinks 在从对话框返回前是否取消引用快捷方式
FileName 第一个在对话框中显示的文件或最后一个选取的文件
InitialDirector 对话框的初始目录
OverwritePrompt 控制在将要在改写现在文件时是否提示用户,只有在ValidateNames 为真值时,才适用
ShowHelp 启用"帮助"按钮
Title 将显示在对话框标题栏中的字符
ValidateNames 控制对话框检查文件名中是否不含有无效的字符或序列
HelpRequest 当用户点击"帮助"按钮时要处理的事件
浙公网安备 33010602011771号