【问题标题】:OpenFileDialog Filter Option Not WorkingOpenFileDialog 过滤器选项不起作用
【发布时间】:2013-01-28 17:30:26
【问题描述】:

由于我将 OpenFileDialog 放入 BackgroundWorker,Filter 选项不再起作用。

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

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

Dim OpenFileDialog2 As New OpenFileDialog()

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

我需要添加什么才能使其正常工作吗?

【问题讨论】:

  • 我不明白。为什么您认为后台工作人员可以帮助您关闭文件?
  • 我正在打开一个配置文件并将内容读入文本框。我还必须修改文件并保存一个新的配置文件。出于某种原因,如果我修改了文件并试图保存得太快,我就会收到访问冲突。我从这里得到了这个想法:vbdotnetforums.com/windows-forms/…

标签: vb.net filter backgroundworker openfiledialog


【解决方案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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-25
    • 2011-10-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-31
    • 1970-01-01
    相关资源
    最近更新 更多