scusa, solo una cosa,
perchè non usi le matrici di controlli?
scusa, solo una cosa,
perchè non usi le matrici di controlli?
legittima domanda. Allora, hai presente quando attivi l'evento click per esempio su un command button? Se hai una matrice di questi, l'evento click diviene il medesimo per tutti gli elementi della matrice dei controlli in questione (appunto i command button).Originariamente inviato da junx
scusa, solo una cosa,
perchè non usi le matrici di controlli?
Prima avevo provato a imporre condizioni sugli eventi click e gotfocus delle listbox, quando, dopo aver scritto quelle della prima, mi sono accorto che esse erano comuni anche alle altre list.
La cosa non la saprei spiegare.. si vede che la matrice di controlli vincola a mantenere gli eventi o solo alcuni di essi in comune. Le proprità però si possono distinguere, ad edempio la caption di una matrice di label si può benissimo variare..
"La fortuna aiuta gli audaci"
(e non gli adagiati)
mmmm mi sa che sbagli qualcosa....
ora ti dimostro come le matrici di controlli ti semplifichino la vita....
questo è quanto tu hai scritto:
e questo è ciò che fai con le matrici:codice:Private Sub List2_Scroll() List1.TopIndex = List2.TopIndex List3.TopIndex = List2.TopIndex End Sub Private Sub List3_Scroll() List1.TopIndex = List3.TopIndex List2.TopIndex = List3.TopIndex End Sub Private Sub List1_Scroll() List2.TopIndex = List1.TopIndex List3.TopIndex = List1.TopIndex End Sub
tieni conto che se tu avessi 10 listbox, nel tuo codice dovresti ripetere 10 volte codice simile, e avresti 10 probabilità di errore...codice:Private Sub List1_Scroll(Index As Integer) Dim i As Integer For i = 0 To mList1.UBound List1(i).TopIndex = List1(Index).TopIndex Next i End Sub
nel mio codice puoi aggiungere 1000 listbox, ma il codice non cambia....
naturalmente questo vale per tutti gli eventi...compresi Click, Focus ec... si tratta solo di saperli usare...
creati un nuovo progetto, mettici 3 ListBox in matrice...e prova tu stesso.
Fammi sapere!
Ciao.
ok. Ora ho urgenza di finire questo programma per cui lo lascerò così, ma di sicuro proverò e ti dirò. Grazie per la soffiata!
Una cosa: ho attivato l'evento gotfocus, per far sì che ad ogni selezione di un elemento della lista partano delle istruzioni. Però noto che l'evento gotfocus si verifica solo al primo click sulla lista. Essa poi resta selezionata comunque e se clicco su altri elementi l'evento gotfocus non si verifica più, ma parte quello mousedown.
Per far sì che partano delle istruzioni ad ogni click sugli elementi ho provato ad attivare l'evento itemcheck, ma evidentemente non è quello che cercavo visto che non succede niente.
Qualche suggermiento?
"La fortuna aiuta gli audaci"
(e non gli adagiati)
Non intercettavi già la selezione tramite la MouseDown ?
Attribuivi lo stesso ListIndex a tutti e tre le list... quindi sapevi anche quale elemento era stato selezionato.
Comunque se vuoi utilizzare la GotFocus devi spostare il focus su un altro controllo.
Alla prima selezione infatti, il focus non è presente sul list, mentre dopo aver effettuato la selezione lo sposti proprio su quest'ultimo.
Alla successiva selezione, non viene ripetuto l'evento perchè il focus è già presente.
Quindi ti basta spostarlo ad un altro oggetto con la SetFocus; ad esempio un pulsante:
Il tutto se vuoi utilizzare l'evento GotFocus.codice:Private Sub List1_GotFocus() MsgBox List1.ListIndex Command1.SetFocus End Sub
Ti ringrazio! :metallicaOriginariamente inviato da Mabi
Non intercettavi già la selezione tramite la MouseDown ?
Attribuivi lo stesso ListIndex a tutti e tre le list... quindi sapevi anche quale elemento era stato selezionato.
Comunque se vuoi utilizzare la GotFocus devi spostare il focus su un altro controllo.
Alla prima selezione infatti, il focus non è presente sul list, mentre dopo aver effettuato la selezione lo sposti proprio su quest'ultimo.
Alla successiva selezione, non viene ripetuto l'evento perchè il focus è già presente.
Quindi ti basta spostarlo ad un altro oggetto con la SetFocus; ad esempio un pulsante:
Il tutto se vuoi utilizzare l'evento GotFocus.codice:Private Sub List1_GotFocus() MsgBox List1.ListIndex Command1.SetFocus End Sub
Aspetta non ho capito bene la prima domanda, ma ti dico che a me interessava evidenziare l'elemento cliccato, evidenziando di conseguenza gli elementi delle altre 2 list con lo stesso index. Tutto ciò avveniva tramite l'evento mousedown. Ma mi interessava anche che si attivassero determinate istruzioni appunto all'evento gotfocus, cioè ad evidenziazione avvenuta.
"La fortuna aiuta gli audaci"
(e non gli adagiati)
OK. Non avevo capito io quando volevi eseguire le istruzioni.Originariamente inviato da Loue
... mi interessava anche che si attivassero determinate istruzioni ad evidenziazione avvenuta.
Ciao