KeyDown - KeyUp Intercettare il controllo su cui si è posizionati

mercoledì 06 agosto 2014 - 22.50

perla0279 Profilo | Senior Member

Ciao
non riesco a trovare come intercettare il controllo dove sono poizionata alla pressione di un tasto all'interno dii un Form.
Ho abilitato nel form KeyPreview = True

Mi servirebbe adesso controllare in che controllo è posizionato l'utente quendo preme il tasto. Nella precisione dovrei controllare:
- Se è un button, in questo caso non deve fare niente
- Se in controllo è TXX.text, sostanzialmente una determinata textbox

Ho critto fino a qui:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

AntCiar Profilo | Expert

Ciao.

Per sapere il controllo con il Focus attivo all'interno della form devi usare il metodo

Me.ActiveControl

questo ti restituisce un Object indicante il controllo con il focus attivo.
Per poter verificare di cosa si tratta devi usare questo codice:

If TypeOf Me.ActiveControl Is Button Then
''Oggetto di tipo System.Windows.Form.Button
MsgBox(CType(Me.ActiveControl, Button).Name)
ElseIf TypeOf Me.ActiveControl Is TextBox Then
''Oggetto di tipo System.Windows.Form.TextBox
MsgBox(CType(Me.ActiveControl, TextBox).Name)
else
''Altri tipi di oggetto
End If

In questo modo puoi controllare quallsiasi tipo di oggetto e farti il cast sul tipo specifico per avere maggiori informazioni (nell'esempio io ho fatto il cast e poi ho preso il valore 'Name'. Se a te servono altre informazioni puoi accederci liberamente)
Cristian Barca
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5