2015-08-23 41 views
0

我是相當新的Visual Basic中,因此它可能是顯而易見的,但我看不出有什麼原因引發和uncasted異常錯誤。這裏的問題是代碼:獲取uncasted錯誤無故

Public Sub textBoxFilePath_TextChanged(sender As Object, e As EventArgs) Handles textboxFilePath.TextChanged 
    If textboxFilePath.Text.Trim.Length > 0 Then 
     If My.Computer.FileSystem.FileExists(textboxFilePath.Text) Then 
      Dim checkType As String 
      checkType = System.IO.Path.GetExtension(textboxFilePath.Text) 
      If checkType = ".xlsx" Or ".xls" Or ".xlsm" Then 
       requiredPath = True 
      Else 
       requiredPath = False 
      End If 
     End If 
     End If 

我得到的錯誤是

「」類型的未處理的異常出現在Microsoft.VisualBasic.dll中

其他信息:轉換從字符串是「.xls」鍵入‘布爾’是無效的。

任何想法?

回答

0

試試這個:

If checkType = ".xlsx" Or checkType = ".xls" Or checkType = ".xlsm" Then 
    requiredPath = True 
Else 
    requiredPath = False 
End If 

您的代碼試圖評價是「.xls」(這是一個字符串),它不能很好地轉換爲布爾真/假。

你也可以做到這一點適用「短路」,所以纔有了第一個真正的評價:

If checkType = ".xlsx" OrElse checkType = ".xls" OrElse checkType = ".xlsm" Then 
    requiredPath = True 
Else 
    requiredPath = False 
End If 
+0

哇哦,我應該想到有。非常感謝你! – gman5500

+0

您好嗯,我的問題得到回答太快,我爲正確答案標記。我必須再等4分鐘! – gman5500

+3

或者你可以這樣做:'requiredPath = {是 「.xls」, 「.XLSX」, 「.XLSM」}包含(checkType)' – jmcilhinney