【问题标题】:VB OpenFileDialog Not Displaying CorrectlyVB OpenFileDialog 未正确显示
【发布时间】:2017-07-24 14:55:06
【问题描述】:

我在使用 Visual Studio 2008 中的 OpenFileDialog 类时遇到问题。我正在 VB.net 中为使用 WEC 7 单元上的 .Net Compact Framework 3.5 的嵌入式应用程序进行编程。

我想要一个子表单中的按钮,以允许用户使用 OpenFileDialog 选择文件。但是,每次用户单击打开此对话框的按钮时,对话框都不会出现,并且表单似乎会立即关闭。父窗体变得无响应(好像对话框已打开,但无法访问),当我在调试模式下暂停代码时,系统似乎正在等待文件选择的输入(同样,不可见)。

我的第一个想法是,这是哪个表单位于顶部的问题,或者是我的代码(见下文)的问题,但我已将代码复制粘贴到其他子表单的其他按钮中并且没有问题。我尝试从 if 语句中删除 showdialog,结果没有变化。我什至把代码放在表单的加载函数中——它工作得很好。我很茫然地解释出了什么问题。

你们谁能发现问题?

这是我的按钮代码。点击功能:

    Dim FileSelect As New OpenFileDialog

    FileSelect.Filter = "Files|*.*"

    If FileSelect.ShowDialog() = Windows.Forms.DialogResult.OK Then
        Dim test As String = FileSelect.FileName
    End If

【问题讨论】:

  • 您能否尝试确保您的所有例外设置都已打开并重试?可能会引发异常,但您的调试器并未引发异常。编辑:我问是因为我尝试粘贴你的代码副本,它对我来说很好,所以你的代码中一定有其他东西导致了这种行为。
  • 我添加了所有异常,但没有抛出异常。谢谢你的建议。
  • 父窗体是否也显示为 ShowDialog?
  • 是 - 主窗体通过 showdialog 显示子窗体。此子表单通过 showdialog 打开此按钮的父级。

标签: vb.net visual-studio-2008 windows-ce


【解决方案1】:

也许您正在后台线程中运行此代码。它可能会得到一个 ThreadStateException

【讨论】:

  • 我不这么认为——我特地启用了 ThreadStateException 并再次尝试,但没有抛出异常。我还需要检查其他什么来验证这一点吗?
  • 有时在调试时不会立即出现异常...尝试将您的代码放在 TRY 和 CATCH 之间...msgbox (ex.message)...也许它可以向您展示一些东西
  • 这是个好主意。不幸的是,当我将代码放入 try-catch 时,它仍然表现得好像一切都还在工作,但它仍然没有显示。捕获永远不会触发。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 1970-01-01
  • 2012-04-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多