Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
TREE VIEW
giovedì 18 gennaio 2007 - 09.42
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
MATTEHGT
Profilo
| Junior Member
83
messaggi | Data Invio:
gio 18 gen 2007 - 09:42
Sapete indicarmi il codice per deselezionare un nodo figlio una volta selezionato un altro nodo figlio della stessa radice?
Grazie
Matteo Agrizzi
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
ven 19 gen 2007 - 16:00
Ciao.
Mi sembra che il controllo treeview lo faccia in automatico.
nel caso a te non si comporti così, descrivi meglio la cosa (magari allegando un piccolo scrrenshot).
Ciao
MATTEHGT
Profilo
| Junior Member
83
messaggi | Data Invio:
ven 19 gen 2007 - 18:47
271_Immagine.zip
il mio problema è: se seleziono un nodo figlio ad esempio nomenclature combinate e se poi seleziono il nodo successivo o precedente automaticamente la selezione e il check si deve impostare su quello correntemente selezionato escludendo quindi il precedente
Grazie
AntCiar
Profilo
| Expert
936
messaggi | Data Invio:
lun 22 gen 2007 - 08:53
Ciao.
Con l'immagine la cosa è più chiara. In primo luogo a me verrebbe di fare in questo modo:
sull'evento afterselect del nodo (per capirci quello che ti genera quando fai doppio click in fase di progettazione sul controllo) controllorei se ne tag della treeview vi sia memorizzato qualche oggetto. Se vi è, effettuerei il cast dell'oggetto verso un tipo TreeNode e gli imposterei la proprietà checked a false. Successivamente inposterei a true la proprietà checked del nono selezionato (e.node) e successivamente attribuirei al tag della treeview il nodo correntemente selzionato. Questo farà si che potrai impostare il check solo su un nodo della tree.
Spero di essere stato di aiuto.
MATTEHGT
Profilo
| Junior Member
83
messaggi | Data Invio:
mar 23 gen 2007 - 10:51
Avevo provato così:
Private Sub TreeView1_AfterCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterCheck
SetTreeNodeCheck(DirectCast(sender, TreeView).Nodes, e.Node, False)
End Sub
Public Sub SetTreeNodeCheck(ByVal nodes As TreeNodeCollection, ByVal escludeTreeNode As TreeNode, ByVal state As Boolean)
For Each n As TreeNode In nodes
SetTreeNodeCheck(n.Nodes, escludeTreeNode, state)
If Not n.Equals(escludeTreeNode) AndAlso Not n.Checked = state Then
n.Checked = state
End If
Next
End sub
Il problema è che questo codice necessita di due click: uno per deselezionare il nodo precedente, l'altro per selezionare quello corrente. La mia necessità era di eseguire tutto con un solo clic
Mi era stato anche fornito questo suggerimento
Private Sub TreeView1_AfterCheck(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterCheck
static last_node_selected as treenode = nothing
if not last_node_selected is nothing then _
last_node_selected.Checked = false
e.Node.Checked = true
last_node_selected = e.Node
End Sub
Il problema è che termina con una ricorsione infinita
Saluti
Grazie
Matteo Agrizzi
Torna su
Stanze Forum
Elenco Threads
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 !