[VB.NET] Cancellare nodi da treeview

mercoledì 10 giugno 2015 - 11.13
Tag Elenco Tags  VB.NET

Rudy65 Profilo | Newbie

Buongiorno a tutti,
come da oggetto avrei bisogno di un aiutone (è da ieri che annaspo....).
Il problema che mi assilla è la possibilità di cancellare,attraverso un loop, alcuni nodi di una treeview.
Ho provato ad usare l'esempio su MSDN (https://msdn.microsoft.com/it-it/library/wwc698z7(v=vs.110).aspx) ma mi restituisce un errore.
Potete per favore darmi una mano ?

Grazie mille
RZ

Questo è l'esempio modificato che non funge! :

Public Sub PrintRecursive(ByVal n As TreeNode, ByVal t As Integer)
Try

If t = 0 Then
'===CICLO LA TREEVIEW PER CONTROLLARE SE ESISTE UNA CARTELLA SOTTO PWD===
If EsistePwdProgetto("\Vault\" & n.Text) <> "" Then
n.BackColor = Color.Gold
End If
ElseIf t = 1 Then
'===MOSTRO SOLO I PROGETTI ATTIVI===
Dim sqlChk As String = "SELECT * FROM FIPflow_Vault WHERE Percorso = '" & "\Vault\" & n.Text & "'"
Dim cmdChk As New SqlCommand(sqlChk, conn)
Dim drChk As SqlDataReader = cmdChk.ExecuteReader
If drChk.HasRows = True Then
While (drChk.Read())
If drChk.Item("StatoProgetto").ToString = "1" Then
n.Remove()
End If
End While
cmdChk.Dispose()
drChk.Close()
Else
cmdChk.Dispose()
drChk.Close()
End If
End If


Dim aNode As TreeNode
For Each aNode In n.Nodes
PrintRecursive(aNode, t)
Next

Catch ex As Exception
MessageBox.Show("Error: " & ex.Message, "FIPflow", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Public Sub CallRecursive(ByVal aTreeView As TreeView, ByVal Tipo As Integer)
Dim n As TreeNode
For Each n In aTreeView.Nodes
PrintRecursive(n, Tipo)
Next
End Sub

ysdemarc Profilo | Expert

Che errore ed in quale riga?
Vincenzo
Programmatore sbilenco

Rudy65 Profilo | Newbie

Ciao,
scusa per il ritardo ma ho avuto una marea di altri problemi.
Grazie ma ho risolto in altra maniera, ho pensato di non caricare, filtrando prima i nodi da evitare. Per ora sembra funzionare.

Cmq l'errore è quello che non riesco a cancellare i nodi figlio una volta caricati sulla treeview. La procedura elencata cancella un nodo ma poi va in errore, penso sia da imputare alla variazione del numero di elementi nella collezione, bisognerebbe ad ogni ciclo "ricontare". (forse...)

RZ

ysdemarc Profilo | Expert

Credo anch'io, in questi casi agisco facendo piuttosto che in ciclo while un ciclo for iniziando dall'ultimo elemento a ritroso fino al primo..
Vincenzo
Programmatore sbilenco

Rudy65 Profilo | Newbie

grazie mille per la tua disponibilità
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5