Me.treeView1.SelectedNode.Remove()
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim msg As String = "Voulez-vous vraiment supprimer ce dossier " & "(" & Me.treeView1.SelectedNode.Text & ")" & " ?" & vbCrLf & "IMPORTANT!" & vbCrLf & " la suppression de ce dossier supprimera tous les fichiers qu'il contient."
Me.parent.Text = Me.treeView1.SelectedNode.Parent.Text Me.fils.Text = Me.treeView1.SelectedNode.Text IDNODE.Text = "" ListBox1.Items.Clear() ListBox2.Items.Clear() For Each row As DataGridViewRow In dataGridView1.Rows If (row.Cells(0).Value = parent.Text) Then ListBox1.Items.Add(row.Cells(1).Value) End If If (row.Cells(0).Value = fils.Text) Then ListBox2.Items.Add(row.Cells(2).Value) End If For Each elmt As String In ListBox1.Items If Not ListBox2.Items.Contains(elmt) Then If (fils.Text = row.Cells(0).Value) And (elmt = row.Cells(2).Value) Then 'MsgBox(row.Cells(1).Value) IDNODE.Text = row.Cells(1).Value End If End If Next Next
''' <summary> ''' Bouton Ajouter treeview ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub ButAjouter_Click(sender As Object, e As EventArgs) Handles butAjouter.Click Dim Node As TreeNode = treeView1.SelectedNode If Node Is Nothing Then Exit Sub ' si pas de sélection on sort Dim parent As NoeudJulia = CType(Node, NoeudJulia) Dim nouveau As NoeudJulia = New NoeudJulia(Date.Now.ToString("yyyy-MM-dd_HH-mm-ss"), parent, lesNoeuds, CON) AfficheDatas() End Sub ''' <summary> ''' bouton Supprimer treeview ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub ButSupprime_Click(sender As Object, e As EventArgs) Handles ButSupprime.Click Dim Node As TreeNode = treeView1.SelectedNode If Node Is Nothing Then Exit Sub ' si pas de sélection on sort If MessageBox.Show("Voulez-vous vraiment supprimer ce dossier " & "(" & Node.Text & ")" & " ?" & Environment.NewLine & "IMPORTANT!" & Environment.NewLine & " la suppression de ce dossier supprimera tous les fichiers qu'il contient.", "Suppression dossier", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = DialogResult.No Then Exit Sub Dim Noeud As NoeudJulia = CType(Node, NoeudJulia) ' le noeud père Node.Remove() Dim ListNoeudsSupprimes As List(Of NoeudJulia) = New List(Of NoeudJulia) From {Noeud} ' liste des noeuds à supprimer lesNoeuds.Remove(Noeud) RechercheFils(Noeud, ListNoeudsSupprimes) ' recherche récursive ' suppression de tous les noeuds à supprimer dans la base For Each NoeudSupprime As NoeudJulia In ListNoeudsSupprimes Dim strSQL As String = "DELETE FROM ARBORESCENCE WHERE ID= " & NoeudSupprime.Valeur.ID Dim cmd = New SQLiteCommand(strSQL, CON) cmd.ExecuteNonQuery() cmd.Dispose() Next AfficheDatas() End Sub ''' <summary> ''' Recherche récursive des noeuds fils ''' </summary> ''' <param name="Noeud"></param> ''' <param name="ListNoeuds"></param> Private Sub RechercheFils(Noeud As NoeudJulia, ByRef ListNoeuds As List(Of NoeudJulia)) Dim NoeudsFils As List(Of NoeudJulia) = lesNoeuds.FindAll(Function(p) p.Valeur.IdParent = Noeud.Valeur.ID) If NoeudsFils.Count > 0 Then ListNoeuds.AddRange(NoeudsFils) For Each NoeudFils As NoeudJulia In NoeudsFils lesNoeuds.Remove(NoeudFils) RechercheFils(NoeudFils, ListNoeuds) Next End If End Sub
lesNoeuds.Remove(Noeud)pour le nœud père et
lesNoeuds.Remove(NoeudFils)pour les nœuds fils on le fait d'un seul coup avec la ligne
lesNoeuds = lesNoeuds.Except(ListNoeudsSupprimes).ToList
''' <summary> ''' bouton Supprimer treeview ''' </summary> ''' <param name="sender"></param> ''' <param name="e"></param> Private Sub ButSupprime_Click(sender As Object, e As EventArgs) Handles ButSupprime.Click Dim Node As TreeNode = treeView1.SelectedNode If Node Is Nothing Then Exit Sub If MessageBox.Show("Voulez-vous vraiment supprimer ce dossier " & "(" & Node.Text & ")" & " ?" & Environment.NewLine & "IMPORTANT!" & Environment.NewLine & " la suppression de ce dossier supprimera tous les fichiers qu'il contient.", "Suppression dossier", MessageBoxButtons.YesNo, MessageBoxIcon.Information) = DialogResult.No Then Exit Sub Dim Noeud As NoeudJulia = CType(Node, NoeudJulia) ' le nœud père Dim ListNoeudsSupprimes As List(Of NoeudJulia) = New List(Of NoeudJulia) From {Noeud} ' liste des nœuds à supprimer Node.Remove() RechercheFils(Noeud, ListNoeudsSupprimes) ' recherche récursive ' on supprime tous les nœuds à supprimer dans la liste lesNoeuds = lesNoeuds.Except(ListNoeudsSupprimes).ToList ' suppression de tous les nœuds à supprimer dans la base For Each NoeudSupprime As NoeudJulia In ListNoeudsSupprimes Dim strSQL As String = "DELETE FROM ARBORESCENCE WHERE ID= " & NoeudSupprime.Valeur.ID Dim cmd = New SQLiteCommand(strSQL, CON) cmd.ExecuteNonQuery() cmd.Dispose() Next AfficheDatas() End Sub ''' <summary> ''' Recherche récursive des nœuds fils ''' </summary> ''' <param name="Noeud"></param> ''' <param name="ListNoeuds"></param> Private Sub RechercheFils(Noeud As NoeudJulia, ByRef ListNoeuds As List(Of NoeudJulia)) Dim NoeudsFils As List(Of NoeudJulia) = lesNoeuds.FindAll(Function(p) p.Valeur.IdParent = Noeud.Valeur.ID) If NoeudsFils.Count > 0 Then ListNoeuds.AddRange(NoeudsFils) For Each NoeudFils As NoeudJulia In NoeudsFils RechercheFils(NoeudFils, ListNoeuds) Next End If End Sub
23 nov. 2020 à 19:40