簡體   English   中英

VB.NET參數無效

[英]VB.NET Parameter is not valid

我已經使用dotnetbar devcomponents高級treeview為我的一個項目創建了多個目錄樹。 在功能方面,一切正常。

現在,我已將圖像添加到目錄文件節點(例如pdf圖像(如果是pdf文件))並發布了該應用程序。 該應用程序首次在任何計算機上運行都沒有任何錯誤,但是一旦我關閉了此文件管理表單(我有一個帶有按鈕的控制面板表單,該按鈕是初始啟動表單。這些按鈕會將我帶到其他表單。單擊按鈕時,它將隱藏控制面板並通過showdialog顯示相應的表單-“文件管理”表單是這些按鈕之一),然后再次將其重新打開-我收到以下錯誤:

parameter_is_not_valid

然后,它無法加載節點,並且經過幾次嘗試,Microsoft .Net Framework窗口出現並結束該應用程序。

我從資源文件中獲取圖像。 請查看發生錯誤的LoadAllSubDirectoriesFiles的代碼:

    Private Sub LoadAllSubDirectoriesFiles(ByVal uParent As DevComponents.AdvTree.Node)
    ' Initialise Error Checking
    Dim uStackframe As New Diagnostics.StackFrame
    Dim ufile As IO.FileInfo = Nothing
    Try

        If uParent.Name.Length <> 248 Then

            Dim files As IO.FileInfo() = uParent.Tag.GetFiles()

            For Each file As IO.FileInfo In files
                If (Not file.Attributes.ToString.Contains("Hidden")) Then
                    Dim uNode As DevComponents.AdvTree.Node = New DevComponents.AdvTree.Node()
                    uNode.Tag = file
                    uNode.Name = file.FullName.ToLower
                    uNode.Text = file.Name
                    If file.Extension = ".msg" Then
                        uNode.Image = My.Resources.Resources.Mail3
                    ElseIf file.Extension = ".txt" Then
                        uNode.Image = My.Resources.Resources.Document
                    ElseIf file.Extension = ".pdf" Then
                        uNode.Image = My.Resources.Resources.pdf
                    ElseIf file.Extension = ".doc" OrElse file.Extension = ".docx" Then
                        uNode.Image = My.Resources.Resources.doc
                    ElseIf file.Extension = ".xlsx" Then
                        uNode.Image = My.Resources.Resources.excel
                    ElseIf file.Extension = ".pub" Then
                        uNode.Image = My.Resources.Resources.publisher
                    ElseIf file.Extension = ".pptx" Then
                        uNode.Image = My.Resources.Resources.powerpoint
                    ElseIf file.Extension = ".bmp" OrElse file.Extension = ".png" OrElse file.Extension = ".jpg" OrElse file.Extension = ".gif" OrElse file.Extension = ".tif" Then
                        uNode.Image = My.Resources.Resources.bitmap_image
                    ElseIf file.Extension = ".zip" OrElse file.Extension = ".rar" Then
                        uNode.Image = My.Resources.Resources.zip
                    Else
                        uNode.Image = My.Resources.Resources.unknown
                    End If
                    uNode.DragDropEnabled = True
                    uParent.Nodes.Add(uNode)
                End If
            Next
        End If
    Catch ex As Exception
        ' Catch Error
        If Err.Number <> 0 Then
            WriteAuditLogRecord(uStackframe.GetMethod.DeclaringType.FullName, uStackframe.GetMethod.Name.ToString, "Error", ex.Message & vbCrLf & vbCrLf & ex.StackTrace, 0)
            MsgBox("System Error Ref: " & sAuditID & vbCrLf & uStackframe.GetMethod.DeclaringType.FullName & " / " & uStackframe.GetMethod.Name.ToString & vbCrLf & ex.Message & vbCrLf & vbCrLf & ex.StackTrace & Chr(13) & sErrDescription & vbCrLf & vbCrLf & "Press Control + C to copy this error report", MsgBoxStyle.Exclamation + MsgBoxStyle.OkOnly, "Business Management System - Unexepected Error Ref: " & sAuditID)
        End If

    Finally
        ' CleanUp

    End Try

End Sub

我現在花了2天的時間來找出原因並解決此問題。 有些帖子談到了圖像被丟棄而無法檢索圖像參考[ http://blog.lavablast.com/post/2007/11/29/The-Mysterious-Parameter-Is-Not-Valid- Exception.aspx ],在處置之前先克隆圖像等。我已經給出了處置和克隆的權限,但是錯誤仍然存​​在。 嘗試過其他幾件事,但仍未成功。

對什么地方有什么建議嗎?

編輯1關閉窗體之前,我清除所有treenodes,然后使用Me.Close()

    Private Sub tsbClose_Click(sender As Object, e As EventArgs) Handles tsbClose.Click
    atRootFolder.Nodes.Clear()
    atAllDirectories.Nodes.Clear()
    atScannedFiles.Nodes.Clear()
    atFiles.Nodes.Clear()
    atInbox.Nodes.Clear()
    atSent.Nodes.Clear()
    Me.Close()
End Sub

編輯2我的樹視圖有數百個節點,子節點等。請查看我的文件管理表單的圖像(這是第一次加載,沒有錯誤),由於客戶端的機密性,我不得不隱藏文本,但我希望它說得通。 每個圖像都是一個節點。

imgur.com/QQ2FzFV

我曾嘗試使用GC.Collect來查看它是否有效,並且令人驚訝。 可悲的是,它在一台機器上工作,而在另一台機器上卻沒有。 因此,不是將所有必需的圖像直接從資源中調用,而是將所有必需的圖像存儲在已附加到樹形視圖的圖像列表中。 它就像一種魅力。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM