I want to run a common KeyDown even handler for all the controls available on a form. any way I can accomplish that?
To be more clear, my intention is to detect Enter key whenever it's pressed and move the focus from the current control to the one with next TabIndex.
How can I accomplish that?
actually ProcessCmdKey doesn't occur under the form events list, so couldn't use it earlier. ^_^
I Edited a bit and modified it to detect if any buttons are available and if there is, it'll not move focus, instead press the button..
Button b = this.ActiveControl as Button;
if (keyData == Keys.Enter && this.AcceptButton == null && this.ActiveControl != null && !this.ActiveControl.Equals(b))
{
TextBoxBase box = this.ActiveControl as TextBoxBase;
if (box == null || !box.Multiline)
{
// Not a dialog, not a multi-line textbox; we can use Enter for tabbing
this.SelectNextControl(this.ActiveControl, true, true, true, true);
return true;
}
}
return base.ProcessCmdKey(ref msg, keyData);
But whatif I want to press the button once and then move again to the new control? Is there any way to invoke this ProcessCmdKey manually?