OpenFileDialog 文件选择对话框
OpenFileDialog 和之前的 FolderBrowserDialog 类似,不过之前是选择目录,现在这个是选择文件。

基本使用
同样用一个按钮和一个文本框,点击按钮弹出文件选择对话框,将选择的文件路径显示到文本框中。

private void button1_Click(object sender, EventArgs e)
{
DialogResult dr = this.openFileDialog1.ShowDialog();
if (dr == DialogResult.OK)
{
this.textBox1.Text = this.openFileDialog1.FileName;
}
}Code language: JavaScript (javascript)
设置文件类型过滤
通过 Filter 属性可以限制显示的文件类型,格式为”描述|*.扩展名”:
this.openFileDialog1.Filter = "文本文件|*.txt|图片文件|*.jpg;*.png;*.gif|所有文件|*.*";Code language: JavaScript (javascript)
多个扩展名用分号隔开,多个过滤项之间用竖线隔开。
多选文件
设置 Multiselect 为 true 允许用户同时选择多个文件:
this.openFileDialog1.Multiselect = true;
private void button1_Click(object sender, EventArgs e)
{
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
foreach (string file in this.openFileDialog1.FileNames)
{
MessageBox.Show(file);
}
}
}Code language: JavaScript (javascript)
常用属性
| 属性 | 说明 |
|---|---|
FileName | 获取或设置选中文件的完整路径 |
FileNames | 获取所有选中文件的路径数组(多选时) |
Filter | 文件类型过滤器 |
FilterIndex | 当前选中的过滤器索引(从1开始) |
InitialDirectory | 初始打开的目录 |
Title | 对话框标题 |
Multiselect | 是否允许多选 |
CheckFileExists | 是否检查文件是否存在(默认 true) |
CheckPathExists | 是否检查路径是否存在(默认 true) |
DefaultExt | 默认文件扩展名 |
RestoreDirectory | 关闭后是否恢复当前目录 |
this.openFileDialog1.Title = "请选择要打开的文件";
this.openFileDialog1.InitialDirectory = @"C:\Documents";
this.openFileDialog1.DefaultExt = "txt";
this.openFileDialog1.FilterIndex = 1;Code language: JavaScript (javascript)
常用方法
| 方法 | 说明 |
|---|---|
ShowDialog() | 显示对话框,返回 DialogResult |
OpenFile() | 以只读方式打开选中的文件,返回 Stream |
Reset() | 重置所有属性到默认值 |
// 直接打开文件流
private void button1_Click(object sender, EventArgs e)
{
if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
{
using (Stream stream = this.openFileDialog1.OpenFile())
{
// 读取文件内容
}
}
}Code language: JavaScript (javascript)
Previous: NotifyIcon 通知栏图标控件
Next: Panel 面板控件