PDA

View Full Version : [VB.Net/2005] Realizzare menu ad albero


Bizkaiko
12-12-2007, 16:23
Salve a tutti.
Ho sempre realizzato dei menu direttamente dalla finestra di progettazione della schermata, per cui era una cosa semplice ed immediata.
Questa volta però avrei bisogno di realizzare un menu dinamico ad albero, in base a dei dati recuperati da un DB.
La struttura del menu dovrebbe essere più o meno così:

AZIENDA
|--CITTA' A (persone, uffici, materiali...)
| |-------SEDE 1 (persone, uffici, materiali...)
| |-------SEDE 2 (persone, uffici, materiali...)
|--CITTA' B (persone, uffici, materiali...)
| |-------SEDE 3 (persone, uffici, materiali...)
|--AMMINISTRAZIONE (gestione luoghi, utenti ecc.)

Ora, la profondità delle sedi/sottosedi a cui si può arrivare non si può stabilire a priori da codice, nella tabella ogni Luogo memorizza l'ID del luogoPadre (quindi CittàA memorizzerà l'Id di Azienda, e Sede1 l'Id di CittàA)
Per ogni sede dovrei avere gli stessi menu di "controllo" (persone, uffici, materiali...), e in fondo a tutto uno o più Menu di amministrazione (definiti in una tabella del DB).
Ora, io non so come realizzare da codice questo menu, né di come associare l'Id del luogo in cui ci si trova ad es. al menu persone (in modo che mi apra la schermata delle persone presenti in quel luogo), né di come fare a stabilire che il menu "persone" mi apra sempre un certo Form e il menu "uffici" me ne apra un altro...
:help: :help: :help:

Bizkaiko
14-12-2007, 09:02
Uppettino...
Nessuno che mi aiuta??? :help:

Bizkaiko
17-12-2007, 08:46
up!

lattone
17-12-2007, 12:28
Puoi utilizzare il componente TreeView.
Genera i nodi dell'albero dinamicamente tramite il metodo treeView.Nodes.Add() usando i dati del DB.

|
---CITTA A (persone, uffici, materiali...)

Una struttura del genere non è amissibile da un albero.
Devi trasformarlo in

|
---CITTA A
|-----persone
|-----uffici
|-----materiali

oppure usare un altro componente come una ListView che si attiva cliccando sull'albero.

TreeView:
|---CITTA A
|---CITTA B

ListView:
| persone| uffici| materiali|

Bizkaiko
17-12-2007, 13:21
Puoi utilizzare il componente TreeView.
Genera i nodi dell'albero dinamicamente tramite il metodo treeView.Nodes.Add() usando i dati del DB.

|
---CITTA A (persone, uffici, materiali...)

Una struttura del genere non è amissibile da un albero.
Devi trasformarlo in

|
---CITTA A
|-----persone
|-----uffici
|-----materiali

oppure usare un altro componente come una ListView che si attiva cliccando sull'albero.

TreeView:
|---CITTA A
|---CITTA B

ListView:
| persone| uffici| materiali|

Grazie mille, proverò a vedere. :)
(la struttura così come l'ho messa era solo per ragioni "grafiche" e di comodità sul forum, in effetti dovrebbe venire come l'hai messa tu)