我正在打开一个文件。要求是,如果用户在过滤器中选择文本,用户可以选择多个文件。但如果用户选择任何图像文件,则允许用户选择单个文件。
一种方法是捕获 dialog.FileOk 委托和初始检查。
我们还有其他方法可以实现相同的目标吗?
谢谢,
OpenFileDialog不为 FileSelected 或 FilterChanged 提供事件。因此,使用默认OpenFileDialog您只能订阅 FileOk 事件并在用户做出选择后取消或接受它。如果您想即时更改设置(例如,当用户在过滤器中选择图像时禁用多个文件选择),那么您应该扩展OpenFileDialog。不幸的是,默认值是密封的,因此您不能只继承它。所以,看看这些文章:
使用以下代码:
private void button1_Click(object sender, System.EventArgs e)
{
openFileDialog1.Filter = "Text Files (.txt)|*.txt|All Files (*.*)|*.*";
openFileDialog1.FilterIndex = 1;
if(openFileDialog1.ShowDialog() == DialogResult.OK)
{
System.IO.StreamReader sr = new
System.IO.StreamReader(openFileDialog1.FileName);
MessageBox.Show(sr.ReadToEnd());
sr.Close();
}