如何用VistaOpenFileDialog设置图片优先的文件筛选选项?
问题解决:VistaOpenFileDialog仅显示“所有文件”选项的修复
你的代码问题出在连续两次赋值dialog.Filter,第二次的"All Files (*.*)|*.*"直接覆盖了第一次定义的图片格式筛选规则,导致对话框里只能看到“所有文件”选项。
要实现默认显示图片格式、同时可切换至所有文件的需求,只需做两个修改:
- 将图片格式和所有文件的筛选规则合并为一个字符串,用
|分隔不同的筛选组 - 设置
FilterIndex = 1(筛选器索引从1开始),让图片格式成为默认选中项
修正后的完整代码如下:
private void button1_Click(object sender, EventArgs e) { VistaOpenFileDialog dialog = new VistaOpenFileDialog(); { // 合并两个筛选器,用|分隔不同选项 dialog.Filter = "Images (*.jpg, *.bmp, *.gif)|*.jpg;*.bmp;*.gif|All Files (*.*)|*.*"; // 设置默认选中第一个筛选器(图片格式) dialog.FilterIndex = 1; }; if (dialog.ShowDialog() == DialogResult.OK) { textBox1.Text = dialog.FileName; Bitmap bmp = new Bitmap(Image.FromFile(dialog.FileName), pictureBox2.Width, pictureBox2.Height); pictureBox2.Image = bmp; } }
内容的提问来源于stack exchange,提问作者Daniel Lip
相关产品推荐
相关产品推荐

