Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - C# KeyPress Event
Forum - C# / VB.NET - C# KeyPress Event

Avatar
TheEngi (Ex-Member)
Pro


Messaggi: 145
Iscritto: 30/08/2009

Segnala al moderatore
Postato alle 17:59
Mercoledì, 28/04/2010
Ciao a tutti... sto cercando di creare un evento keypress in modo che se schiaccio per esempio f10, la pressione di quel tasto corrisponde ad una operazione... e ho provato con questo codice:

private void mainForm_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (Keys.F10)
            {
                toolStripButton12.Pressed = true;
            }

        }

scusate la mia ignoranza ma non ho mai usato questo tipo di evento :D

Chi mi può aiutare???
Grazie in anitcipo!


The Engineer
PM Quote
Avatar
NetProgrammer (Member)
Pro


Messaggi: 175
Iscritto: 28/06/2008

Segnala al moderatore
Postato alle 18:31
Mercoledì, 28/04/2010
Ciao TheEngi, sicuramente il codice non ti funziona perchè hai omesso il KeyEventArgs e il quale contiente il tasto premuto in quell'istante; mi spiego meglio nell'if tu devi fare così:
Codice sorgente - presumibilmente Plain Text

  1. if(e.Keys.F10){ //...tuo codice...}


Prova così e vedi che ti funzionerà!
Ciao.

Ultima modifica effettuata da NetProgrammer il 28/04/2010 alle 21:22
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 19:32
Mercoledì, 28/04/2010

1) Si chiama TheEngi e non TheJuster (che si arrabbierà molto :D)

2) Il codice che hai scritto non funziona

3) L'evento da intercettare è KeyUp, e il confronto da fare è e.KeyCode == Keys.F10


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
NetProgrammer (Member)
Pro


Messaggi: 175
Iscritto: 28/06/2008

Segnala al moderatore
Postato alle 21:21
Mercoledì, 28/04/2010
Lool...scusate..i 2 nomi sono così simili, comunque grazie per le correzzioni, però ti devo contraddire, è possibile intercettare il KeyPress e fare il confronto con e.keycode così:
if(e.KeyCode==Keys.F10){ //tuo code...}
alla fine la mia soluzione non era del tutto sbagliata però non avendo sotto mano visual studio non l'ho potuta testare.
@ TheEngi...scusa ancora ho corretto il post!!:D

Ultima modifica effettuata da NetProgrammer il 28/04/2010 alle 21:23
PM Quote
Avatar
TheEngi (Ex-Member)
Pro


Messaggi: 145
Iscritto: 30/08/2009

Segnala al moderatore
Postato alle 16:58
Giovedì, 29/04/2010
Ciao NetProgrammer... non ti preoccupare... per il nome intendo...
Comunque io ho provato con il keypress event.. ma l'istruzione keycode non esiste...
Invece come diceva HeDo nel keyup posso fare: e.KeyCode == Keys.F10
ma le istruzioni non vengono eseguite vi posto il mio codice:
Dove ho sbagliato???

private void mainForm_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.F9)
            {
                //istruzione sotto forma di funzione
            }
            else if (e.KeyCode == Keys.F10)
            {
                 //istruzione sotto forma di funzione
            }
            else if (e.KeyCode == Keys.F11)
            {
                 //istruzione sotto forma di funzione
            }
        }


The Engineer
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 19:53
Giovedì, 29/04/2010
probabilmente è la natura stessa dei tasti FXX che non solleva l'evento, molto strano cmq.
non so dire di più in merito, se non di provare con altri tasti per controllare se funziona, visto che è il metodo corretto.


Ingegnere Informatico
https://ldlagency.it
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:24
Giovedì, 29/04/2010
Testo quotato

Postato originariamente da NetProgrammer:

Lool...scusate..i 2 nomi sono così simili, comunque grazie per le correzzioni, però ti devo contraddire, è possibile intercettare il KeyPress e fare il confronto con e.keycode così:
if(e.KeyCode==Keys.F10){ //tuo code...}
alla fine la mia soluzione non era del tutto sbagliata però non avendo sotto mano visual studio non l'ho potuta testare.
@ TheEngi...scusa ancora ho corretto il post!!:D



Il tuo codice era sia sintatticamente che concettualmente errato. Primo perchè quel membro non esiste; secondo perchè stai confrontando una costante con il valore 0, il che non c'entra proprio nulla con il resto.


Ricordo che gli eventi KeyPress, KeyDown e KeyUp, su un controllo che non possa esplicitamente ricevere input, non vengono generati.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM Quote
Avatar
NetProgrammer (Member)
Pro


Messaggi: 175
Iscritto: 28/06/2008

Segnala al moderatore
Postato alle 20:59
Giovedì, 29/04/2010
Grazie totem per la tua risposta, mi sono studiato gli eventi KeyPress e ho capito il mio errore,comunque grazie per avermelo fatto notare.

Ultima modifica effettuata da NetProgrammer il 29/04/2010 alle 21:00
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 21:16
Giovedì, 29/04/2010
Testo quotato

Postato originariamente da Il Totem:
Ricordo che gli eventi KeyPress, KeyDown e KeyUp, su un controllo che non possa esplicitamente ricevere input, non vengono generati.



vero :)



Ingegnere Informatico
https://ldlagency.it
PM Quote