2017-07-24 111 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