Projelerimden biri için birden çok dizin ağacı oluşturmak için dotnetbar devcomponents gelişmiş treeview kullandım. İşlevselliği bilge, her şey yolunda.VB.NET Parametre geçerli değil
Artık dizin dosya düğümlerine (ör. Pdf dosyası ise pdf dosyası) resim ekledim ve uygulamayı yayınladım. Uygulama herhangi bir makinede ilk defa hata yapmadan çalışır, ancak bu Dosya Yönetimi formunu kapattıktan sonra (ilk başlangıç formu olan düğmelerle birlikte bir kontrol paneli formum var. Düğmeler beni diğer formlara götürür. Düğme tıklandığında, gizler. kontrol paneli ve ShowDialog yoluyla gelen form görüntüler - Dosya Yönetimi formunun bu düğmelerden biri) ve tekrar açmayı - aşağıdaki hatayı alıyorum:
Daha sonra düğümlerin yüklenmemesive sonra Bir çift denemede, Microsoft .Net Framework penceresi görünür ve uygulamayı sonlandırır.
Resim dosyalarını kaynak dosyamdan alıyorum. Hatanın oluştuğu LoadAllSubDirectoriesFiles için kod bakın: Ben sebebini bulabilir ve bu sorun için tamir etmeye çalışıyor şimdi 2 gün geçirdim
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
. İmha edilen görüntü hakkında konuşulan ve görüntü referansını alamayan mesajlar (http://blog.lavablast.com/post/2007/11/29/The-Mysterious-Parameter-Is-Not-Valid-Exception.aspx), imha edilmeden önce görüntüyü klonlama vb. Vardı. Bir atma ve klonlama işlemi yaptım ama hata hala geçerli. Başka şeyleri deniyordum ama hala başarısız.
Sorun olan herhangi bir öneriniz var mı?
formu kapatmadan önce DÜZENLEME 1 , tüm TreeNodes temizleyip sonra 2 Benim treeviews vb düğümler yüzlerce çocuk düğümleri var 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
DÜZENLEME kullanmak Lütfen dosya yönetimi formumun görüntüsüne bakın (bu, ilk kez yüklendi, hata yok) İstemci gizliliği nedeniyle metni gizlemek zorunda kaldım, ama umarım bu mantıklıdır. Her görüntü bir düğümdür.
imgur.com/QQ2FzFV
'Uygulama, herhangi bir makinede ilk kez hata olmadan çalışır, ancak bir kez bu Dosya Yönetimi formunu kapatıp tekrar açtığımda - hatayı alıyorum.' Belki de bu formu nasıl kapattığınız/imha ettiğinizle ilgili bir soruna benziyor. Form kapatma etkinliğinde bulunan herhangi bir kod, vb. – LarsTech
@LarsTech Form kapanışı sadece Me.Close() kullanılarak yapılır. Başka bir şey yok. Treeview.nodes.clear() 'ı yakın zamanda ekledim, ama bu sebep değil. Bazı sebeplerden dolayı görüntü referanslarından bazılarını alamıyor. Bazen atAllDirectories ağaç görünümünde, diğer zamanlarda atInbox'ta vb. Her zaman formun açılmasından sonra kaç tane ağacın hata oluştuğu tamamen rastgele. Lütfen ilk kez formu açtığımda hata olmadığını unutmayın. – Nayon
Bu düğümlerin temizlenmesinin size bir şey getirip getirmediğini bilmiyorum. Bu form nasıl oluşturulur? Bu formda kaç tane "düğüm" var? – LarsTech