Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79

    scrollbar e listbox

    ciao a tutti!!

    Allora: avendo una serie di 3 listbox le quali si riempiono dinamicamente a seconda degli elementi presenti in un database al click su un pulsante, io dovrei:

    1. affiancare 3 vscrollbars, una per ognuna delle 3 listbox, facendo in modo che più sono gli elementi della lista, più il campo di scorrimento si ingrandisce secondo un rapprto da definire e, al click sui pulsanti freccia in alto o in basso, compaia il primo elemento eventualmente non visibile e scompaia l'ultimo visibilr all'estremo opposto.

    2. evidenziando uno degli elementi di una delle 3 list, anche gli altri delle altre list con stesso indice si evidenziano e diventano visibili, in caso ce ne fosse bisogno.

    questo è il form:
    [IMG]C:\Documenti[/IMG]

    GRAZIE

    EDIT: uso Visual Basic 6.0
    "La fortuna aiuta gli audaci"
    (e non gli adagiati)

  2. #2
    Utente di HTML.it L'avatar di MMarzia
    Registrato dal
    Mar 2001
    Messaggi
    1,781
    specifica linguaggio e versione
    io sono festosamente cicciottello :: e. cartman

    t'amo senza sapere come, nè quando nè da dove,
    t'amo direttamente senza problemi nè orgoglio:
    così ti amo perchè non so amare altrimenti

  3. #3
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    ... avendo una serie di 3 listbox...
    E' un array di controlli o sono tre ListBox separate ?
    ... affiancare 3 vscrollbars, una per ognuna delle 3 listbox, facendo in modo che più sono gli elementi della lista, più il campo di scorrimento si ingrandisce ...
    Intendi sostituire la scrollbar del controllo con una esterna ?
    Se è così, ti basta impostare il valore massimo e minimo e modificare la ListIndex:
    codice:
    Scr.Min = 0
    Scr.Max = (List1.ListCount - 1)
    
    List1.ListIndex = Scr.Value
    Per il secondo punto, sempre che non usi un array di ListBox, ti basta modificare la ListIndex relativa:
    codice:
    Private Sub List1_Click()
    List2.ListIndex = List1.ListIndex
    List3.ListIndex = List1.ListIndex
    End Sub
    
    Private Sub List2_Click()
    List1.ListIndex = List2.ListIndex
    List3.ListIndex = List2.ListIndex
    End Sub
    
    Private Sub List3_Click()
    List1.ListIndex = List3.ListIndex
    List2.ListIndex = List3.ListIndex
    End Sub

  4. #4
    Utente di HTML.it L'avatar di junx
    Registrato dal
    May 2004
    Messaggi
    322
    Private Sub List1_Click()
    List2.ListIndex = List1.ListIndex
    List3.ListIndex = List1.ListIndex
    End Sub

    sfruttando l'evendo MouseDown invece che Click avrai un risultato grafico decisamente migliore.

    Ciao.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79
    Originariamente inviato da Mabi
    E' un array di controlli o sono tre ListBox separate ?

    Intendi sostituire la scrollbar del controllo con una esterna ?
    Se è così, ti basta impostare il valore massimo e minimo e modificare la ListIndex:
    codice:
    Scr.Min = 0
    Scr.Max = (List1.ListCount - 1)
    
    List1.ListIndex = Scr.Value
    Per il secondo punto, sempre che non usi un array di ListBox, ti basta modificare la ListIndex relativa:
    codice:
    Private Sub List1_Click()
    List2.ListIndex = List1.ListIndex
    List3.ListIndex = List1.ListIndex
    End Sub
    
    Private Sub List2_Click()
    List1.ListIndex = List2.ListIndex
    List3.ListIndex = List2.ListIndex
    End Sub
    
    Private Sub List3_Click()
    List1.ListIndex = List3.ListIndex
    List2.ListIndex = List3.ListIndex
    End Sub
    sì, l'ho notato: avevo impostato un array ma poi l'evento focus era il medesimo per tutte.

    Perchè, la vscrollbar è anche implementata nei controlli? Come posso fare ad usarla? Non lo sapevo, davvero!

    ora provo il codice

    GRAZIE
    "La fortuna aiuta gli audaci"
    (e non gli adagiati)

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79
    Originariamente inviato da junx
    sfruttando l'evendo MouseDown invece che Click avrai un risultato grafico decisamente migliore.

    Ciao.
    lo terrò a mente! :bubu:

    GRAZIE
    "La fortuna aiuta gli audaci"
    (e non gli adagiati)

  7. #7
    Utente di HTML.it L'avatar di junx
    Registrato dal
    May 2004
    Messaggi
    322
    Perchè, la vscrollbar è anche implementata nei controlli? Come posso fare ad usarla?
    la scroll compare quando il numero degli elementi 'supera' la 'capacità di visualizzazion' (l'altezza per intenderci) del controllo, è tutto automatico..... per tua fortuna.

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79
    Originariamente inviato da junx
    la scroll compare quando il numero degli elementi 'supera' la 'capacità di visualizzazion' (l'altezza per intenderci) del controllo, è tutto automatico..... per tua fortuna.
    ok. Visto tutto. Ho un'ultima domanda: è possibile modificare il valore della scroll implementata?

    per spiegarvi come mai mi serve questa cosa vi faccio un esempio così c'è la possibilità di proporre soluzioni alternative

    codice:
    list1            | list2          | list3
    ________________________________________
    1                 |1               |1
    2                 |2               |2
    3                 |3               |3
    4                 |4               |4 
    5                 |5               |5    
    -------------------------------------
    6                 |6               |6
    7                 |7               |7
    8                 |8               |8
    9                 |9               |9 
    10                |10              |10    
    ________________________________________
    poniamo la linea continua come limiti delle list e la linea tratteggiata come separatore tra l'area massima delle list visualizzabile sul form (parte sopra la linea tratteggiata) e l'area raggiungibile con lo scorrimento delle vscrollbars (parte sotto la linea tratteggiata).
    Se io prendessi la lista 2, per esempio, e la scorressi verso il basso alla ricerca dell'elemento 8 posizionandolo su una riga a caso della list, e successivamente ci cliccassi sopra, otterrei una cosa del genere nelle aree visualizzabili su form delle liste:

    codice:
    list1            | list2          | list3
    ---------------------------------------------
    3                 |4                 |3
    4                 |5               |4 
    5                 |6               |5    
    6                 |7               |6
    7                 |8 selez.        |7
    8   selez.        |9               |8 selez.
    ---------------------------------------------
    selez.=selezionato

    questo perchè l'utente posiziona scorrendo con la scroll l'elemento che cerca su una riga a caso (nell'esempio la penultima, ma potrebbe essere una qualsiasi), ma la scrollbar che si attiva come conseguenza alle istruzioni dell'evento mousedown si posiziona automaticamente in modo che l'elemento da evidenziare sia sull'ultima riga visualizzabile del controllo list. A questo punto per migliorare la visualizzazione mi sarebbe utile portare i valori posizionali delle scrolls delle liste non "cliccate" dall'utente al medesimo dell'altra.

    GRAZIE
    "La fortuna aiuta gli audaci"
    (e non gli adagiati)

  9. #9
    Utente di HTML.it L'avatar di junx
    Registrato dal
    May 2004
    Messaggi
    322
    ok ho capito.
    Ti faccio un breve esempio:

    codice:
    Private Sub List2_Scroll()
        List1.TopIndex = List2.TopIndex
    End Sub
    inquesto modo scrollando la list2, scrolli pure la list1.
    Da qui poi è tutto un gioco.....

    Prova e fammi sapere!

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2003
    Messaggi
    79
    Originariamente inviato da junx
    ok ho capito.
    Ti faccio un breve esempio:

    codice:
    Private Sub List2_Scroll()
        List1.TopIndex = List2.TopIndex
    End Sub
    inquesto modo scrollando la list2, scrolli pure la list1.
    Da qui poi è tutto un gioco.....

    Prova e fammi sapere!
    ed ecco il codice completo funzionante!

    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

    GRAZIE!!! :metallica

    EDIT: minimissima pecca: lo scroll attivato con la rotellina del mouse non le fa muovere in contemporanea. Ma chissenefffrega!!
    "La fortuna aiuta gli audaci"
    (e non gli adagiati)

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 © 2025 vBulletin Solutions, Inc. All rights reserved.