文件对话框包括打开文件对话框(OpenFileDialog)和保存文件对话框(SaveFileDialog)。OpenFileDialog类似于Windows操作系统中的“打开文件”对话框,用于选择驱动器,浏览文件路径、选择打开的文件。
SaveFileDialog有两种形式,一种是常见的“保存”,另一种是“另存为”。“保存”在不存在文件的时候弹出对话框,提示输入文件名,“另存为”在任何情况下都会弹出对话框。
在应用程序中使用OpenFileDialog,可以在窗体设计器中添加,也可以编写代码实现。
使用设计器上添加OpenfileDialog控件
为“文件”菜单中的“打开文件”菜单项和“打开”按钮编写单击事件处理程序,代码如下:
private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
{
this.openFileDialog1.ShowDialog();
}
private void 打开OToolStripButton_Click(object sender, EventArgs e)
{
this.openFileDialog1.ShowDialog();
}
编译并运行程序,选择“打开文件”菜单或单击“打开”按钮,都可显示“打开文件”对话框
如果不在窗体上添加打开对话框控件,在代码中直接编写,也可以实现相同的功能,代码如下:
private void 打开OToolStripButton_Click(object sender, EventArgs e)
{
OpenFileDialog opfile = new OpenFileDialog();//创建OpenFileDialog()对象
opfile.ShowDialog();
}
可以给OpenFileDialog设置标题,初始化目录和过滤条件,此对话框的默认标题是“打开”可以根据需要修改“Title”属性的值。默认情况下,OpenFileDialog运行时打开的是“我的文档”目录文件或者应用程序上次运行时打开的目录。文件过滤器定义了用户可以选择打开的文件类型,过滤器可以分为数个部分,每个部分用一个“|”分隔。现将上面代码的“打开”按钮事件添加:代码如下:
private void 打开OToolStripButton_Click(object sender, EventArgs e)
{
OpenFileDialog opfile = new OpenFileDialog();//创建OpenFileDialog对象
opfile.Title = "我的记事本";//设置标题
opfile.Filter = "文本文件(*.txt)|*.txt";
opfile.InitialDirectory = @"c:\";
opfile.ShowDialog();
}
选中文件后,单击“打开”按钮或“取消”按钮,对话框都会有一个返回值。OpenFileDialog的ShowDialog()方法返回一个Dialogresult枚举,该枚举定义了成员,即Abort,Cancle,Igonre,No,Yes等。现在继续完善上面的代码,在“打开”事件中判断是否进行了选择,如果选择了文本文件,将内容显示在窗体的RichTextBox中。
打开文件对话框使用实例
要引用命名空间using System.IO;
private void 打开OToolStripButton_Click(object sender, EventArgs e)
{
OpenFileDialog opfile = new OpenFileDialog();//创建OpenFileDialog对象
opfile.Title = "我的记事本";//设置标题
opfile.Filter = "文本文件(*.txt)|*.txt";
opfile.InitialDirectory = @"c:\";
if (opfile.ShowDialog() == DialogResult.Cancel)
return;
else
{
opfile.Title = opfile.FileName;//设置对话框标题
StreamReader sr = new StreamReader(opfile.OpenFile());
this.richTextBox1.Text = sr.ReadToEnd();
}
}
保存文件对话框(SaveFileDialog)的用法和OpenFileDialog基本相同,也可设置标题,过滤器和默认打开文件夹。在窗体设计器向窗体添加SaveFileDialog对话框,对“保存”按钮的单击事件添加代码。
private void 保存SToolStripButton_Click(object sender, EventArgs e)
{
this.saveFileDialog1.Title = "我的记事本";
this.saveFileDialog1.Filter = "文本文件(*.txt)|*.txt";
this.saveFileDialog1.InitialDirectory=@"c:\";
if (this.saveFileDialog1.ShowDialog() == DialogResult.Cancel)
return;
else
{
Stream stream = this.saveFileDialog1.OpenFile();
StreamWriter sw = new StreamWriter(stream);
sw.Write(this.richTextBox1.Text);
MessageBox.Show("保存成功");
sw.Close();
}
}
程序运行时,单击“保存”按钮,可将文本框中的数据保存到指定文件中。