概述
C#学习笔记(十六):使用打开保存文件对话框
导读:
除了PrintPreviewDialog外,其他对话框类都派生于抽象基类CommonDialog,这个基类的方法可以管理Windows通用对话框。
对话框适用的场合:
1.要让用户选择和浏览要打开的文件,应使用OpenFileDialog。这个对话框可以配置为只允许选择一个文件,或可以选择多个文件。
2.使用SaveFileDialog,用户可以为要保存的文件指定一个文件名和浏览的路径。
3.PrintDialog用户选择一个打印机,并设置打印选项。
4.配置页面的边距,通常使用PageSetupDialog。
5.PrintViewDialog是在屏幕上进行打印预览的一种方法,并有一些选项如缩放。
6.FontDialog列出了所有已安装的Windows字体、样式和字号,以及各字体的预览效果,以便选择字体。
7.ColorDialog用于选择颜色。
文件对话框:
l OpenFileDialog:打开文件对话框
l SaveFileDialog:保存文件对话框
打开文件对话框
OpenFileDialog ofd =newOpenFileDialog();
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 +=newEventHandler(ofd_HelpRequest);
privatevoidofd_HelpRequest(objectsender, 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 =newSaveFileDialog();
privatevoidmiFileSaveAs_Click(objectsender, EventArgs e)
{
if(sfd.ShowDialog() ==DialogResult.OK)
{
stringfileName =sfd.FileName;
SaveFile(fileName);
}
}
protectedvoidSaveFile(stringfileName)
{
try
{
Stream stream =File.OpenWrite(fileName);
using(StreamWriter writer =newStreamWriter(stream))
{
writer.Write(textBox1.Text);
}
}
catch(IOException ex)
{
MessageBox.Show(ex.Message,"Simple Editor",MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
}
}
本文转自
http://www.cnblogs.com/Bear-Study-Hard/archive/2006/03/09/346154.aspx
标签词:
对话框 文件扩展名 文件名 保存 路径 设置 true 用户输入 自定义 filter
最后
以上就是含蓄皮卡丘为你收集整理的使用打开保存文件对话框的全部内容,希望文章能够帮你解决使用打开保存文件对话框所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复