Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    12

    [VB6] Impedire di mantenere premuto tasto sx del mouse

    Buongiorno,
    qualcuno saprebbe dirmi come fare a evitare che il tasto sinistro del mouse venga tenuto premuto a lungo (come quando si vuole fare, ad esempio, una selezione).
    Io voglio che l'utente possa effettuare solo dei semplici click!
    Grazie per l'aiuto

    Marco

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Riformula il quesito dando maggiori indicazioni ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    12
    allora... cerco di spiegarmi meglio.
    Ho un form con una listbox di cui ho impostato la proprietà 'multiselect' su simple (mi permette quindi di selezionare più voci presenti nella listbox).
    Supponiamo che i valori della listbox siano i numeri 1,2 e 3. Io clicco sul numero 1 (che quindi si 'seleziona') e, senza rilasciare il tasto sinistro del mouse, mi sposto sull'elemento 3 della listbox.
    Se provo a fare:
    Label1.Caption = List1.List(List1.ListIndex)
    la label assume il valore 3 (quando nella listbox, invece, il valore che rimane 'selezionato' è l'1)!
    In altre parole: quando si attiva l'evento MouseDown il valore letto è effettivamente 1 (come vorrei che fosse) mentre una volta rilasciato il tasto sinistro (con l'attivazione dell'evento MouseDown) il valore letto è 3.

    Spero di essermi riuscito a spiegare!
    Grazie

    Marco

  4. #4
    Originariamente inviato da youridj
    allora... cerco di spiegarmi meglio.
    Ho un form con una listbox di cui ho impostato la proprietà 'multiselect' su simple (mi permette quindi di selezionare più voci presenti nella listbox).
    Supponiamo che i valori della listbox siano i numeri 1,2 e 3. Io clicco sul numero 1 (che quindi si 'seleziona') e, senza rilasciare il tasto sinistro del mouse, mi sposto sull'elemento 3 della listbox.
    Se provo a fare:
    Label1.Caption = List1.List(List1.ListIndex)
    la label assume il valore 3 (quando nella listbox, invece, il valore che rimane 'selezionato' è l'1)!
    In altre parole: quando si attiva l'evento MouseDown il valore letto è effettivamente 1 (come vorrei che fosse) mentre una volta rilasciato il tasto sinistro (con l'attivazione dell'evento MouseUp) il valore letto è 3.

    Spero di essermi riuscito a spiegare!
    Grazie

    Marco

    In ogni caso, hai provato a mettere "Label1.Caption = List1.List(List1.ListIndex)" nell'evento mousedown della list? o comunque in che evento lo stai mettendo?

    Dimenticavo, se agisci col mouse come dici te, l'elemento selezionato è il 3°, non il primo. Tanto che intorno al 3° vedrai il rettangolo punteggiato...

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    12
    Innanzitutto grazie Andrea per avermi risposto!
    Il "Label1.Caption = List1.List(List1.ListIndex)" l'ho messo sia nell'evento MouseDown che in MouseUp, proprio per vedere che cosa viene salvato.

    Dimenticavo, se agisci col mouse come dici te, l'elemento selezionato è il 3°, non il primo. Tanto che intorno al 3° vedrai il rettangolo punteggiato...
    Ecco! E' proprio quello che non voglio! Io voglio che l'elemento che viene selezionato sia il 1° e non il 3°. Se riuscissi ad eliminare quel rettangolo punteggiato sarei la persona più felice di questa terra

  6. #6
    Allora...togli "Label1.Caption = List1.List(List1.ListIndex)" dal mouseup (è qua che ti prende il 3 come listindex, mentre nel mousedown ti prende il 1°, te visualizzi il 3 per il semplice motivo che il mouseup avviene subito dopo...)

    Ti spiego come fare, in poche parole: Salvi l'index nel mousedown, dopo di che quando avviene il mouseup reimposti il listindex in base a quello che avevi salvato. Ti posto un esempio:

    codice:
    Option Explicit
        Dim Ind As Integer
    
    Private Sub Form_Load()
        List1.AddItem "1"
        List1.AddItem "2"
        List1.AddItem "3"
    End Sub
    
    Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
        Ind = List1.ListIndex
    End Sub
    
    Private Sub List1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
        List1.ListIndex = Ind
    End Sub

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.