Click indesiderato

lunedì 19 marzo 2007 - 19.06

Carlik Profilo | Junior Member

Salve,
ho un form sul quale è abilitato il keypress da tastiera(proprietà KeyPreview = True).
Quando clicco un pulsante sul mio form,il focus rimane su tale pulsante.
Se successivamente premo invio,è come se io premessi nuovamente quel pulsante(questo per me è un effetto indesiderato).
Ho provato ad assegnare il focus ad altri elementi ma non funziona.
Come fare per distinguere i due eventi?

alextyx Profilo | Expert

Con il keypreview = true puoi intercettare il tasto invio, ad esempio nell'evento keypress, se non ricordo male. Il keypreview serve principalmente a permettere la gestione delle pressioni dei tasti prima che arrivino ai controlli del form.
Tu come usi il keypreview?

Carlik Profilo | Junior Member

>Con il keypreview = true puoi intercettare il tasto invio, ad
>esempio nell'evento keypress, se non ricordo male. Il keypreview
>serve principalmente a permettere la gestione delle pressioni
>dei tasti prima che arrivino ai controlli del form.
>Tu come usi il keypreview?

Grazie prima di tutto ...
Ovviamente metto KeyPreview = true, e in effetti nella keypress, se il focus non è su un pulsante, riesco a gestire la pressione di invio.Il problema si pone quando il focus è su un pulsante..Infatti keypress non intercetta l'invio, che va direttamente a scatenare il click sul pulsante....
Per ora ho risolto con un trucco squallido(dopo il click su un pulsante richiamo la select di una textbox nascosta),ma non vorrei ci fossero effetti indesiderati....

alextyx Profilo | Expert

Mah...veramente dovresti poterlo intercettare!
E ovviamente cancellarlo con l'istruzione apposita, che, vado a memoria, dovrebbe essere:
e.handled=true
che dovrebbe segnalare l'avvenuta gestione dell'evento e il conseguente annullamento delle procedure che altrimenti esso scatenerebbe, come il click sul pulsante.

Carlik Profilo | Junior Member

Boh,non lo intercetta.ANch'io mi rendo conto ke hai ragione quando dici che dovrei poterlo intercettare,ma fatto sta che non lo intercetta...Boh
Grazie comunque

alextyx Profilo | Expert

Ma non è che per caso hai quel pulsante definito coma AcceptButton del form e il form per l'appunto è visualizzato con showdialog?
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5