打开文件对话框筛选器选项不起作用



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

曾经将其作为按钮单击,它工作正常,除了我打开的每个文件都不会关闭文件,因此我添加了 BackgroundWorker。

无论如何,这是我当前的代码,与我拥有的按钮单击代码没有什么不同。

Dim OpenFileDialog2 As New OpenFileDialog()
OpenFileDialog2.InitialDirectory = "C:TempConfig_Files"
OpenFileDialog2.Filter = "Configuration Files (*.cfg)|*.cfg"

我需要添加一些东西才能使其正常工作吗?

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

Dim fileToProcess as String = string.Empty
Using opf As New OpenFileDialog()
    opf.InitialDirectory = "C:TempConfig_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

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

最新更新