Treenode e usercontrol

giovedì 09 febbraio 2012 - 09.21
Tag Elenco Tags  VB.NET  |  .NET 4.0  |  Windows 7  |  Visual Studio Express  |  SQL Server Express

simbla79 Profilo | Junior Member

Salve a tutti,

vi espongo il mio "problema", ho un form con uno split container in un pannelo c'è una treeview l'altro è vuoto. quello che vorrei risuscire a fare è questo:
ad ogni aggiuta di nodi nella treeview, nel pannello2 (quello vuoto) vorrei inserire un mio user conrol, dopo di che ogni volta che clicco su un nodo devo evidenziare il controllo a lui associato.

Attendo vostri suggerimenti

Grazie

AntCiar Profilo | Expert

Ciao.

Potresti fare in questo modo:

1: ti crei i tuoi usercontrol gia in progettazione così li tieni pronti. Poi ti crei una classe che eredita il treenode in cui aggiungi come proprietà un oggetto usercontrol generico (inizializzato a null). Quando crei il nodo, valorizzi il tag dello stesso con una stringa che ti permetta di capire quale userControl associare. Poi sull'evento di selezione del nodo controlli se la variabile UserControl associata al nodo è nulla: nel caso è nulla, leggendo il Tag ti inizializzi l'usercontrol, lo dai in pasto alla property e poi lo aggiungi nel panel2; se invece la variabile Usercontrol è valorizzata, metti direttamente nel panel2 il valore della property.

ti allego un piccolo progettino di esempio.

ciao ciao
Cristian Barca

simbla79 Profilo | Junior Member

ciao,

grazie per la risposta ho dimenticato di specificare che il linguagio vb.net e non c#, va beh a parte questo mi hai dato un buon suggerimento.

l'unica cosa è che quando mi sposto da un nodo all'altro non so perchè non mi seleziona il control corretto.

AntCiar Profilo | Expert

ciao.

Controlla bene l'associazione tra "identificatore" che attribuisci al nodo e UserControl da caricare.
Magari interpreta male la stringa oppure se sono molti usercontrol hai fatto errori di copia e incolla.
Cristian Barca

simbla79 Profilo | Junior Member

ok risolto.

posso mandari il progetto per poi chiedeti un piccolo aiuto su una cosa? è un progetto in visual studio 2010 express lo puoi aprire?

AntCiar Profilo | Expert

No non posso aprirlo
Ho la versione 2005

Prova a spiegare il problema e a postare un po di codice e vediamo se si può risolvere.

ciao ciao

simbla79 Profilo | Junior Member

allora quello che vorrei fare ora è questo, dati i miei usercontrol l'utente deve compilare i campi di ogni control e poi effettuare un salvataggio sul db.
come faccio a gestire questa cosa?

spero di essere stato chiaro

grazie

AntCiar Profilo | Expert

ciao.

Anche io ho fatto una cosa simile e l'ho implementata in questo modo:

All'interno di ogni userControl possiede un metodo pubblico chiamato "SaveData()" (poi il nome ce lo dai tu) ed in questo metodo sono scritte tutte le istruzioni per effettuare il salvataggio dei parametri presenti sull'usercontrol nel database.

Ho di lato una treeNode dove carico gli usercontrol in modo simile a quello che ti ho mostrato nel progetto di esempio.
Sulla form ho un bottone "Salva" generale. Quando clicchi su questo bottone non faccio altro che scorrere tutti i nodi dell'ablero. Per ogni nodo controllo che deve essere valorizzata la proprietà relativa all'userControl (se non è valorizzata vuol dire che l'utente non ha mai fatto click sul nodo e quindi non ha mai caricato il relativo usercontrol). Se valorizzata invoco il metodo "SaveData()" dell'usercontrol e salvo tutto a database o in file a seconda del contenuto dell'usercontrol.

In questo modo se l'utente ti visualizza (ed eventualmente modifica) i dati di un solo usercontrol, quando salvi l'operazione risulta essere veloce perchè salvi solo i dati visualizzati in quell'usercontrol e non tutti gli altri perchè se non ha caricato gli usercontrol vuol dire che non li ha potuti modificare.

Cristian Barca

simbla79 Profilo | Junior Member

perfetto grazie mille bhe l'unica cosa che il mio dovrà luppare un pò di più perche ci sono anche dei sottonodi...
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5