Intercettare il controllo che aveva il focus prima del clik

mercoledì 12 settembre 2012 - 20.01
Tag Elenco Tags  VB.NET  |  .NET 3.5

ridaria Profilo | Expert

Ciao amici sto cercando una funzione che mi restituisca il controllo che aveva il focus prima del click eseguito su di un button

Sto provando con questo ma mi restituisce Nothing.

<DllImport("user32.dll", CharSet:=CharSet.Unicode, _
CallingConvention:=CallingConvention.Winapi)> _
Public Shared Function GetFocus() As IntPtr
End Function

Private Function GetFocusedControl() As Control
Dim focusedControl As Control = Nothing
' To get hold of the focused control:
Dim focusedHandle As IntPtr = GetFocus()
If IntPtr.Zero.Equals(focusedHandle) Then
' Note that if the focused Control is not a .Net control, then this will return null.
focusedControl = Control.FromHandle(focusedHandle)
End If
Return focusedControl
End Function

Mi date una mano?


Grazie
Riccardo D'Aria

algraps Profilo | Junior Member

Ciao,
scusami per il codice c# ma penso che poi la conversione in vb sia semplice.. Io ho risolto in questo modo :
... Control _lastEnteredControl; ... public Form1() { InitializeComponent(); foreach (Control ctrl in Controls) { if (ctrl is TextBox) { ctrl.Enter += delegate(object sender, EventArgs e) { _lastEnteredControl = (Control)sender; }; } } }

Fammi sapere..
Ciao
A.G.

ridaria Profilo | Expert

ho risolto e grazie comunque.


Riccardo D'Aria

algraps Profilo | Junior Member

di nulla...
solo per curiosita'' posso domandarti come hai risolto?

ciao e grazie mille.

ridaria Profilo | Expert

è lunga ......
in fondo la mia esigenza non era sapere quale controllo avesse il focus prima del click sul bottone. (la qual cosa mi pare difficile da ottenere)

MA era avere dei controlli che al click non prendessero il focus, lasciandolo quindi alla text box in questione o alla cella di una griglia.

Approfondendo su ciò ho quindi scoperto che i controlli image che hanno l'evento click non prendono il focus se ci clikki sopra, e quindi la textbox continua a tenere il focus ec.....

Tutto cio mi serve per creare una interfaccia touch screen per le casse di un supermercato.


CIAO
Riccardo D'Aria
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5