2017-07-24 110 views
-1

我在Visual Studio 2008中的OpenFileDialog类遇到问题。我在VB.net中编写了一个在WEC 7设备上使用.Net Compact Framework 3.5的嵌入式应用程序。VB OpenFileDialog显示不正确

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

我的第一个想法是,这是一个问题,顶部是形式,还是用我的代码(见下文),但我已将代码复制粘贴到其他子表单的其他按钮中,并且没有问题。我试图从if语句中删除showdialog,但结果没有任何变化。我甚至把代码放在窗体的加载函数中 - 它工作得很好。我很抱歉地解释什么是错的。

你们中的任何人都可以发现问题吗?

下面是从button.Click功能我的代码:

Dim FileSelect As New OpenFileDialog 

    FileSelect.Filter = "Files|*.*" 

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

您可以尝试确保您的所有异常设置都已打开并重试吗?一个异常可能会被抛出,但你的调试器不会引发它。编辑:我问,因为我试过你的代码复制粘贴,它对我来说工作正常,所以在你的代码中必须有别的东西导致这种行为。 – Jaxi

+0

我添加了所有例外,但没有例外被抛出。感谢您的建议。 – SamC

+0

父窗体是否也显示为ShowDialog? – Jaxi

回答

0

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

+0

我不这么认为 - 我特别启用了ThreadStateException并再次尝试,但没有抛出异常。还有什么我需要检查来验证这一点? – SamC

+0

调试时有时候不会立即出现异常...试着把你的代码放在TRY和CATCH之间......'msgbox(ex.message)'......也许它可以告诉你一些东西 –

+0

这是一个好主意。不幸的是,当我把代码放在try-catch中时,它仍然表现得好像所有东西都还在工作,但它仍然没有显示出来。捕获从未被触发。 – SamC