Hallo liebe Community,
habe folgendes Problem dass ich nicht lösen kann
Von meinem IMAP-Postfach werden sämtliche Ordner und Unterordner abgerufen und in ein ToolStripMenuItem gefüllt.
Bei Rechtsklick werden mir zunächst die Ordner und deren Unterordner angezeigt.
Nur wenn ein Unterordner auch einen Unterordner hat, wird dieser als Unterordner vom Hauptordner angezeigt.
Zur Verdeutlichung:
Gewünscht ist folgende Auflistung
Hauptordner 1
Unterordner 1.1
Unter-Unterordner 1.1.1
Stattdessen wird aber angezeigt
Hauptordner 1
Unterordner 1.1
Unterordner 1.1.1 (Falsch)
Vermute in der Sub "DurchlaufeContextMenuItems" enthält der rekursive Aufruf einen Fehler.
Das selbe habe ich mit Treeview gemacht und dort werden die Nodes richtig dargestellt.
Deshalb vermute ich beim rekursiv-Aufruf den Fehler.
Bin für jede Hilfe dankbar.
CodeTags gesetzt ~VaporiZed
habe folgendes Problem dass ich nicht lösen kann
Von meinem IMAP-Postfach werden sämtliche Ordner und Unterordner abgerufen und in ein ToolStripMenuItem gefüllt.
Bei Rechtsklick werden mir zunächst die Ordner und deren Unterordner angezeigt.
Nur wenn ein Unterordner auch einen Unterordner hat, wird dieser als Unterordner vom Hauptordner angezeigt.
Zur Verdeutlichung:
Gewünscht ist folgende Auflistung
Hauptordner 1
Unterordner 1.1
Unter-Unterordner 1.1.1
Stattdessen wird aber angezeigt
Hauptordner 1
Unterordner 1.1
Unterordner 1.1.1 (Falsch)
VB.NET-Quellcode
- Private Sub Add_contextmenu()
- dgvEmails.ContextMenuStrip = context_menu
- dgvEmails.ContextMenuStrip = context_menu
- tag_parent = 0
- tag_sub = 0
- For i = 0 To all_folders_array.Count - 1
- folder = all_folders_array(i)
- If Not all_folders_array(i).Contains("/") Then
- tag_parent += 1
- mainfolder = New ToolStripMenuItem(folder)
- mainfolder.Tag = tag_parent
- remove_to_folder.DropDownItems.Add(mainfolder)
- Else
- Dim folders2 = Contextmenu_add_subfolders(folder)
- End If
- Next
- End Sub
- Function Contextmenu_add_subfolders(folder As String) As String
- Dim Fullpath As String = folder
- Dim count_folder As Integer = Fullpath.Count(Function(c) c = "/"c) + 1
- Dim parts() As String = Fullpath.Split("/"c)
- Dim search_tag As String = ""
- Dim Child_folder As String = parts(count_folder - 1)
- If count_folder = 2 Then
- search_tag = tag_parent.ToString
- Else
- search_tag = "S" & tag_sub.ToString
- End If
- DurchlaufeContextMenuItems(context_menu, search_tag, Child_folder)
- End Function
- Private Sub DurchlaufeContextMenuItems(dropDownMenu As ToolStripDropDownMenu, search_tag As String, Child_folder As String)
- For Each item As ToolStripItem In dropDownMenu.Items
- If item.Tag IsNot Nothing AndAlso item.Tag.ToString() = search_tag Then
- Dim child As New ToolStripMenuItem(Child_folder)
- tag_sub += 1
- child.Tag = "S" & tag_sub
- mainfolder.DropDownItems.Add(child)
- AddHandler child.Click, AddressOf MenuItem_MouseClick
- Exit For
- End If
- If TypeOf item Is ToolStripDropDownItem Then
- Dim dropDownItem As ToolStripDropDownItem = CType(item, ToolStripDropDownItem)
- DurchlaufeContextMenuItems(dropDownItem.DropDown, search_tag, Child_folder)
- End If
- Next
- End Sub
Vermute in der Sub "DurchlaufeContextMenuItems" enthält der rekursive Aufruf einen Fehler.
Das selbe habe ich mit Treeview gemacht und dort werden die Nodes richtig dargestellt.
Deshalb vermute ich beim rekursiv-Aufruf den Fehler.
Bin für jede Hilfe dankbar.
CodeTags gesetzt ~VaporiZed
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()