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

    [VB6] Evento Keypress in una form

    Non capisco una cosa dell'evento Keypress in una form. Quando viene attivato questo evento con precisione?
    La domanda mi sorge perchè avevo impostato un funzione che si doveva attivare alla pressione del tasto F1. Ho quindi scritto il codice sull'evento

    Private Sub Form_KeyPress(KeyAscii As Integer)
    if Keyascii = "valore in ascii di F1" then funzione_mia
    End Sub

    ma facendo debug mi sono accorto che la funzione non veniva mai fatta perchè l'evento non veniva mai attivato anche se premevo F1 con la form attiva....perchè?

  2. #2
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    utilizza il keydown:

    codice:
    Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    If KeyCode = 112 Then MsgBox ("f1")
    End Sub

  3. #3
    che differenza dovrebbe esserci concettuale sull'utilizzo del keydown e keypress?
    il primo mi sembra si attivi nel momento che il tasto viene "abbassato" e serve per intercettare (sempre se non sbaglio) la pressione di tasti quali CTRL + A...etc
    Il secondo dovrebbe intercettare qualsiasi tasto singolo premuto. La mia domanda è perchè nella form non me lo intercetta invece?

  4. #4
    Utente di HTML.it L'avatar di yyzyyz
    Registrato dal
    Oct 2001
    Messaggi
    1,653
    l'unica cosa ke so' e ke nella keydown mi intercetta anke i tasti funzione mentre nella keypress no , ora nn so se sia possibile anke nella keypress.
    ciao

  5. #5
    Questo è gia qualcosa

    Grazie

  6. #6
    Ciao Seyen.
    in caso analoghi al tuo io utilizzo questo sistema:

    codice:
    Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
       If KeyCode = 112 Then      ' Tasto "F1" premuto
          ' ... tuo codice da gestire
       End If
    End Sub
    Tieni tuttavia presente che devi impostare a "True" la proprietà "KeyPreview" del form che contiene tale controllo.

    Nel mio esempio io premo "F1" su di una textbox ma volendo puoi far funzionare la stessa cosa sul tuo form impostando la proprietà "KeyPreview" dello stesso a "True". Dalle prove che ho fatto funziona.

    Comunque, dalla guida MSDN:

    Evento KeyPress:
    viene generato quando si preme e si rilascia un tasto ANSI.

    Eventi KeyDown e KeyUp: Vengono generati quando si preme (KeyDown) o si rilascia (KeyUp) un tasto mentre un oggetto ha lo stato attivo. Se è necessario che vengano interpretati caratteri ANSI, utilizzare l'evento KeyPress.

    Fammi sapere.

    P.S.: salutami Zena...
    Giulio C. - Roma

  7. #7
    Ecco cosa mi mancava...la Proprietà Keypreview

    Grazie di tutto e saluti da Zena

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.