Casella di riepilogo che intercetta pressione tasti

di il
12 risposte

Casella di riepilogo che intercetta pressione tasti

E' possibile scorrere gli elementi di una casella di riepilogo e intercettare la pressione di alcuni tasti?
Cioe' creare un evento particolare alla pressione di un particolare tasto durante lo scorrimento della casella di riepilogo.
Spiego meglio cosa vorrei realizzare
Mentre scorro gli elementi di una casella di riepilogo utilizzando i tasti freccia alto e basso
su alcuni elementi ad esempio premo il tasto 1 per fare alcune cose oppure il tasto 2 o il 3 per farne altre
ovviamente per fare cose collegate all'elemento corrente della casella di riepilogo
quindi l'obiettivo e' di realizzare una struttura per elaborare velocemente alcune operazioni ripetitive
solo su alcuni elementi della casella
Grazie

12 Risposte

  • Re: Casella di riepilogo che intercetta pressione tasti

    Prova ad intercettare l'evento KeyPress o KeyDown e verifica cosa restituisce il parametro KeyCode o KeuAscii...
  • Re: Casella di riepilogo che intercetta pressione tasti

    evento KeyPress o KeyDown
    Grazie Alez
    In tutte le maschere utilizzo solo il maiuscolo e per questo in ognuna c'e' la sub
    Private Sub Form_KeyPress(KeyAscii As Integer)
    If (KeyAscii >= 97 And KeyAscii <= 122) Then
        KeyAscii = KeyAscii - 32
    Else
        KeyAscii = KeyAscii
    End If
    End Sub
    ma in particolare mi interessebbe intercettare i caratteri solo quando e' attiva la casella di riepilogo
    e chiamare delle sub solo alla pressione di alcuni tasti ma solo quando scorro su e giu' la casella
    sempre se e' possibile...
  • Re: Casella di riepilogo che intercetta pressione tasti

    Infatti il KeyPress lo devi provare a gestire sul controllo.
  • Re: Casella di riepilogo che intercetta pressione tasti

    KeyPress lo devi provare a gestire sul controllo
    Il keypress solo nella casella di riepilogo
    quindi come indicato qui?
    https://docs.microsoft.com/en-us/office/vba/api/access.form.keypress
    potrebbe essere qui l'intercettazione?
    Private Sub ShipRegion_KeyPress(KeyAscii As Integer) 
     Dim strCharacter As String 
     
     ' Convert ANSI value to character string. 
     strCharacter = Chr(KeyAscii) 
     ' Convert character to upper case, then to ANSI value. 
     KeyAscii = Asc(UCase(strCharacter)) 
    End Sub
    
    e poi processando solo i tasti che mi interessano?
  • Re: Casella di riepilogo che intercetta pressione tasti

    Tu che dici...? (dopo aver provato)
  • Re: Casella di riepilogo che intercetta pressione tasti

    dopo aver provato
    Non ho provato perche' mi pare un po strano che sia cosi' semplice
  • Re: Casella di riepilogo che intercetta pressione tasti

    Walter61 ha scritto:


    Non ho provato perche' mi pare un po strano che sia cosi' semplice
    E dovremmo provare NOI per TE ?

    Comunque dal link da te postato :
    A KeyPress event can involve any printable keyboard character, the Ctrl key combined with a character from the standard alphabet or a special character, and the Enter or Backspace key. You can use the KeyDown and KeyUp event procedures to handle any keystroke not recognized by the KeyPress event, such as function keys, navigation keys, and any combinations of these with keyboard modifiers (Alt, Shift, or Ctrl keys). Unlike the KeyDown and KeyUp events, the KeyPress event doesn't indicate the physical state of the keyboard; instead, it indicates the ANSI character that corresponds to the pressed key or key combinations.
    Se vuoi intercettare i tasti premuti (non il corrispondente carattere) devi usare gli eventi KeyDown oppure KeyUp mentre se ti interessa il codice del carattere (dato anche dalla combinazione di più tasti) devi usare l'evento KeyPress ... vedi tu.
  • Re: Casella di riepilogo che intercetta pressione tasti

    Walter61 ha scritto:


    dopo aver provato
    Non ho provato perche' mi pare un po strano che sia cosi' semplice
    Molto MALE...
  • Re: Casella di riepilogo che intercetta pressione tasti

    Ho gia' nella form la sub per trasformare tutto in maiuscolo
    Private Sub Form_KeyPress(KeyAscii As Integer)
    la domanda di tipo tecnico e':
    l'intercettazione tasti e' possibile anche a livello di singolo controllo in questo caso una nella casella di riepilogo
    oppure e' possibile farlo solo a livello di form con una sub tipo quella gia' esistente e quindi solo successivamente vedere da quale controllo e' arrivata la chiamata?
  • Re: Casella di riepilogo che intercetta pressione tasti

    Dipende dalla proprietà KeyPreview del form :
    https://docs.microsoft.com/en-us/office/vba/api/access.form.keypreview
  • Re: Casella di riepilogo che intercetta pressione tasti

    Ok trovato nelle proprieta' della casella di riepilogo...
    Private Sub crpArgomenti_KeyPress(KeyAscii As Integer)
  • Re: Casella di riepilogo che intercetta pressione tasti

    Ma pensa un poco.... solo 10 Post sono serviti...!
    Cosa dicevo io in questo...?
    https://www.iprogrammatori.it/forum-programmazione/post8670673.html#p8670673
Devi accedere o registrarti per scrivere nel forum
12 risposte