OpenFileDialog过滤器选项不起作用

时间:2013-01-28 17:30:27

标签: vb.net filter backgroundworker openfiledialog

由于我将OpenFileDialog放入BackgroundWorker,Filter选项不再有效。

我用它作为按钮点击它并且工作正常,除了我打开它的每个文件不会关闭文件,因此我添加了BackgroundWorker。

Anywho,这是我当前的代码,与我的按钮点击代码没什么不同。

Dim OpenFileDialog2 As New OpenFileDialog()

OpenFileDialog2.InitialDirectory = "C:\Temp\Config_Files\"
OpenFileDialog2.Filter = "Configuration Files (*.cfg)|*.cfg"

我是否需要添加一些内容才能使其正常工作?

1 个答案:

答案 0 :(得分:1)

我认为您误解了使用背景工作者的建议 您应该让OpenFileDialog完成其工作并获取要处理的cfg文件,然后,如果您想要更快的UI响应,请启动后台工作程序。

Dim fileToProcess as String = string.Empty
Using opf As New OpenFileDialog()
    opf.InitialDirectory = "C:\Temp\Config_Files\"
    opf.Filter = "Configuration Files (*.cfg)|*.cfg"
    if opf.ShowDialog() = DialogResult.OK then
        fileToProcess = opf.FileName
    Endif
End Using
if fileToProcess <> string.Empty then
    ' Now start you backgroundworker to do its job
end if

当然,用户可以重新开始使用相同的代码并再次选择相同的文件。这可能会导致意外结果。最好禁用按钮/菜单或启动文件选择过程的任何内容,直到上一个过程结束。