Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 17 su 17
  1. #11
    Utente di HTML.it L'avatar di junx
    Registrato dal
    May 2004
    Messaggi
    322
    scusa, solo una cosa,
    perchè non usi le matrici di controlli?

  2. #12
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79
    Originariamente inviato da junx
    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).

    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)

  3. #13
    Utente di HTML.it L'avatar di junx
    Registrato dal
    May 2004
    Messaggi
    322
    mmmm mi sa che sbagli qualcosa....
    ora ti dimostro come le matrici di controlli ti semplifichino la vita....

    questo è quanto tu hai scritto:

    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
    e questo è ciò che fai con le matrici:

    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
    tieni conto che se tu avessi 10 listbox, nel tuo codice dovresti ripetere 10 volte codice simile, e avresti 10 probabilità di errore...
    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.

  4. #14
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79
    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)

  5. #15
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    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:
    codice:
    Private Sub List1_GotFocus()
    MsgBox List1.ListIndex
    Command1.SetFocus
    End Sub
    Il tutto se vuoi utilizzare l'evento GotFocus.

  6. #16
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79
    Originariamente 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:
    codice:
    Private Sub List1_GotFocus()
    MsgBox List1.ListIndex
    Command1.SetFocus
    End Sub
    Il tutto se vuoi utilizzare l'evento GotFocus.
    Ti ringrazio! :metallica

    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)

  7. #17
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Originariamente inviato da Loue
    ... mi interessava anche che si attivassero determinate istruzioni ad evidenziazione avvenuta.
    OK. Non avevo capito io quando volevi eseguire le istruzioni.

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.