Newsgroup: it.comp.lang.visual-basic
Titolo: [?] TreeView - strano comportamento

Salve a tutti
Ho creato una applicazione che usa un db access, 1 treeview e una listview.
Nel database ci sono diverse tabelle che contengono dati e la treeview con
la sua struttura, conterrà nella root il nome di ogni tabella e nei suoi
figli il contenuto della tabella. Periodicamente ho creato nuove tabelle e
quindi il database è cresciuto di dimensioni fino all'attuale 125 mb. Il
programma funziona in questo modo: ho la form con la treeview e la listview,
seleziono un valore della treeview e premendo "a" inserisco tale valore
nella listview. Tutto ha funzionato bene fino a circa 60 mb fà, ma ora
quando seleziono nella treeview, dopo aver premuto "a", il programma mi
riporta quanto selezionato nella treeview in listview e dopo la selezione
della treeview si sposta fino al primo valore dopo la root del valore
spostato.
Spero di essere stato comprensibile.
Cosa ne pensate?
Ciao
Fabio

 quindi il database è cresciuto di dimensioni fino all'attuale 125 mb.
125 MB !!!!!!!!!
perchè non provi a compattare il database da access?????
non posso credere che sono 125 MB di dati reali.
credo proprio che vb o almeno i suoi scadenti controlli standard non siano
in grado di gestire agevolmente db di tali dimensioni

 in grado di gestire agevolmente db di tali dimensioni
Non diciamo sciocchezze.

 spostato.
Fabio, il programma l'hai fatto tu... Che significa, per noi, "premendo a"?
Capisci che non possiamo ipotizzare una soluzione per un applicativo che non
conosciamo?
Segui passo-passo il tuo codice e vedi se comprendi il problema.
Se vuoi, prova anche a dare un'occhiata al mio ESP0DAMA sul Sito Comune (che
fa più o meno quel che hai descritto) e vedi come si comporta col tuo
database.

 in grado di gestire agevolmente db di tali dimensioni
Piu' che di scadenti controlli bisogna vedere cosa fa il codice; per esempio
non ho capito esattamente quanti e quali dati vengono caricati nel tree e
quanti e quali nel listview, ma spero che quando piu' sopra dice "nella root
il nome di ogni tabella e nei suoi figli il contenuto della tabella" voglio
sperare che non vengano caricati in un solo botto tutti i record di tutte le
tabelle nel tree...
Ciao
-- 
Luca Dormio - 
luca....@tin.it
________________________________
"Marty, non stai ragionando in maniera quadridimensionale"
Dr. Emmett L. Brown

 tabelle nel tree...
No, non li carica all'apertura della form che contiene la treeview.
la treeview contiene i dati cosě disposti:
-nometabella
 |_ indirizzo1
 |_ indirizzo2
 |_ ..........
io seleziono ad esempio "indirizzo1" e cliccko su "a" e il
tv.selecteditem.text viene copiato nella listview.
Come dicevo il programma ha funzionato perfettamente fino ad una certa
dimensione del db, successivamente, se io seleziono "indirizzo2" e premo
"a", dopo aver copiato l'item selezionato nella listview, la selezione,
nella treeview, si sposta su "indirizzo1".
Io non ci ho capito niente.
Ciao
Fabio


Ti ringrazio.
Ciao

 Io non ci ho capito niente.
Nemmeno noi: quello che intendeva Lupo, non e' tanto sapere che premi il
tasto "a" sulla tastiera, ma *il codice* associato.
Quando dici che "il .text viene copiato nella listview", suppongo tu faccia
qualcosa del genere:
Private Sub TreeView1_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc("a") Then
    ListView1.ListItems.Add , , TreeView1.SelectedItem.Text
End If
End Sub
immagino che ci sia dell'altro, ma soprattutto ci sono operazioni sul
database in questo evento? quali? che la dimensione di un DB influenzi la
selezione in un tree, cosi' dal nulla, mi sembra alquanto strano
altrimenti...


 Capisco. Significa che sulla tastiera digito il tasto "a"
Io decido, coscientemente (e per questo penso di meritarmi un pubblico
apprezzamento), di stare zitto.

 altrimenti...
.Sembra strano anche a me, però questa anomalia l'ho riscontrata solo dopo
aver caricato ulteriormente il db.
Questo il codice che ho utilizzato peril passaggio:
Private Sub tv_KeyPress(KeyAscii As Integer)
    If KeyAscii = Asc("a") Then aggiungi
End Sub
Private Sub aggiungi()
    If left(tv.SelectedItem.Parent.Text, 2) = "CB" Then
        tv.SelectedItem.Bold = True
        Set lvw = lv.ListItems.Add(, , indirizzo)
    end if
End Sub
Ti ringrazio per la pazienza.
Ciao
Fabio

 ha scritto nel messaggio
news:bf33ci$aiamn$1...@ID-174464.news.uni-berlin.de...

Scusa non avevo capito la tua reale domanda.
Ciao
Fabio