除了PrintPreviewDialog外,其他对话框类都派生于抽象基类CommonDialog,这个基类的方法可以管理Windows通用对话框。
ofd.ShowDialog();
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);
}
}