Finding currently focused control
Good question! Now, this was a question in one of my sessions at Microsoft Community at Cognizant. We need to use User32 API's to do this stuff. It isn't that difficult. Just a small snippet and you are through!
Here's the neat solution.
[DllImport("user32.dll", CharSet=CharSet.Auto, CallingConvention=CallingConvention.Winapi)]
internal static extern IntPtr GetFocus();
private Control GetFocusedControl()
{
Control focusedControl = null;
// To get hold of the focused control:
IntPtr focusedHandle = GetFocus();
if(focusedHandle != IntPtr.Zero){
// Note that if the focused Control is not a .Net control, then this will return null.
focusedControl = Control.FromHandle(focusedHandle);
}
return focusedControl;
}