Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [VB6] Menù Contestuale

    Ciao a tutti ragazzi, vorrei chiedere se è possibile e come si gestisce un menù contestuale diverso da quello predefinito su un oggetto ListBox.

    Mi spiego Meglio:

    All'apertura del programma carico su una listbox tutte le righe di un DB. Vorrei però dare la possibilità all'utente di poter modificare o cancellare un elemento della lista, e che questa modifica o cancellazione abbia effetto sul DB.

    Ho creato le funzioni
    CancellaElemento(Elemento as String)
    ModificaElemento(Elemento as String)

    solo che vorrei dare la possibilità di fare clck con il tasto destro del mouse e fare selezionare "Cancella" o "Modifica" e in base alla scelta deve essere chiamata la funzione adeguata e deve essere passato l'elemento selezionato.

    Si può fare? Qualcuno potrebbe darmi una mano?? Grazie
    Paperina :-)

  2. #2
    Certo che si puo fare.
    allora inanzitutto devi crearti il menù, esattamente come fai per i menu normali col menù editor, curandoti di tenere invisibile la prima voce.
    poi per visualizzare il menù usi l'evento MouseDown e il metodo popupmenù per visualizare il menù (il nome e quello del primo elemento)
    codice:
    Private Sub lvFile_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
    If Button = 2 Then
       PopupMenu Menù
    End If
    End Sub
    gli eventi dei menù li trovi con il nome del menù stesso.


  3. #3
    Grazie, fin qui tutto ok, solo che non ho capito come faccio a sapere su quale elemento si è fatto click? Se premo con il destro non si seleziona.
    In questo modo devo per forza prima fare click con il sinistro per selezionarlo e poi con il destro per il menù.
    Non c'è un modo per fare tutto con il solo tasto destro?
    Grazie!!
    Paperina :-)

  4. #4
    tutti i programmi utilizzano il tasto destro per far apparire il menu' e il tasto sinistro per selezionare il comando... secondo me dovresti utilizzare lo stesso sistema.
    Anche perchè se vai nel codice di VB la voce di menu' non ha altri eventi se non il Click che si verifica solo col tasto sinistro del mouse. Quindi ti basta utilizzare l'evento
    codice:
    VoceDelMenuSelezionata_Click

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  5. #5
    Grazie Lady.
    Sei tu in foto?

    Ho proprio fatto così per il momento, solo che sarebbe bello se si potesse fare così:
    Con il sinistro si seleziona, e con il destro si seleziona e si esegue il menù.
    Se non ce altro altro modo, sarebbe buono poter simulare la pressione del tasto 1 se si preme il tasto 2.

    Si può fare? Qualcuno sa come si può fare?

    Grazie
    Paperina :-)

  6. #6
    Originariamente inviato da Paperina(l4p)
    Grazie Lady.
    Sei tu in foto?

    Ho proprio fatto così per il momento, solo che sarebbe bello se si potesse fare così:
    Con il sinistro si seleziona, e con il destro si seleziona e si esegue il menù.
    Se non ce altro altro modo, sarebbe buono poter simulare la pressione del tasto 1 se si preme il tasto 2.

    Si può fare? Qualcuno sa come si può fare?

    Grazie
    Di niente.
    Si, sono io

    Beh, io non so se esiste un altro sistema perchè non mi sono mai trovata a dover affrontare questa situazione, quindi utilizzo il metodo "tradizionale". Ma credo che in qualche modo sia possibile

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  7. #7
    Ho fatto una cosa.
    Su un form ho messo un menù invisibile mFile con un sottomenù mProva e tra le proprietà del Form ho impostato su True KeyPreview.
    A questo punto nel codice ho scritto questo:
    codice:
    Private Sub Form_MouseDown(Button As Integer, _ 
                Shift As Integer, X As Single, Y As Single)
    
        If Button = 1 Then
            PopupMenu mFile
        End If
    
    End Sub
    
    Private Sub mProva_Click()
        MsgBox "Cliccato sul menu' col tasto sinistro"
    End Sub
    uso solo il tasto sinistro sia per far apparire il menù che per selezionare la voce del menù stesso.
    Non so se ti piace, vedi un po' tu

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

  8. #8
    Ottima Idea Lady, infatti ho tamponato così, solo che è un po scomodo effettivamente.

    Avevo pensato, non è che si potrebbe (credo con le API) simulare la pressione del tasto sinistro, se si preme il destro e quindi fare comparire il menu?

    Cioè con il sinistro solo selezionare l'elemento (quello che succede normalmente), mentre con il destro, selezionare l'elemento e fare comparire il menù.

    E' possibile?? Qualcuno sa come si possa fare?? Perfavore Grazie


    P.S.: LadyBlu, non sapevo che oltre ad essere brava eri anche carina Complimenti
    Paperina :-)

  9. #9
    Se posso esprimere il mio parere, qualora tu non abbia richieste esplicite per fare questa cosa che chiedi, io ti consiglio di utilizzare il metodo standard: far comparire il menù col destro e selezionare col sinistro, senza scomodare API e cose del genere.
    Rimane una mia opinione e un consiglio.


    PS:
    grazie, sei gentile

    05.08.2005 - by alka
    Auguri all'angelo custode dei moderatori.

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.