文件对话框包括打开文件对话框(OpenFileDialog)和保存文件对话框(SaveFileDialog)。OpenFileDialog类似于Windows操作系统中的“打开文件”对话框,用于选择驱动器,浏览文件路径、选择打开的文件。

SaveFileDialog有两种形式,一种是常见的“保存”,另一种是“另存为”。“保存”在不存在文件的时候弹出对话框,提示输入文件名,“另存为”在任何情况下都会弹出对话框。

在应用程序中使用OpenFileDialog,可以在窗体设计器中添加,也可以编写代码实现。

使用设计器上添加OpenfileDialog控件

C#对话框-文件对话框_文本文件



为“文件”菜单中的“打开文件”菜单项和“打开”按钮编写单击事件处理程序,代码如下:

        private void 打开OToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.openFileDialog1.ShowDialog();
        }

        private void 打开OToolStripButton_Click(object sender, EventArgs e)
        {
            this.openFileDialog1.ShowDialog();
        }

编译并运行程序,选择“打开文件”菜单或单击“打开”按钮,都可显示“打开文件”对话框

C#对话框-文件对话框_窗体设计器_02

如果不在窗体上添加打开对话框控件,在代码中直接编写,也可以实现相同的功能,代码如下:

        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();
        }

 

C#对话框-文件对话框_打开文件_03

选中文件后,单击“打开”按钮或“取消”按钮,对话框都会有一个返回值。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();
            }
          
        }

C#对话框-文件对话框_文件对话框_04



保存文件对话框(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();
           
            }
        }

程序运行时,单击“保存”按钮,可将文本框中的数据保存到指定文件中。