想重写TextBox控件,敲击键盘回车移动焦点(实现按Tab方式)。用Control提供的SelectNextControl方法发现无效,后来查了一下资料,在这提供两种解决方式:
一种:
重写OnKeyDown事件。
protected override void OnKeyDown(KeyEventArgs e)
{
if (!this.Multiline && e.KeyCode == Keys.Enter && this.Parent != null)
{
SendKeys.Send("{TAB}");
}
base.OnKeyDown(e);
}
二种:重写ProcessDialogKey
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter)
{
keyData = Keys.Tab;
}
return base.ProcessDialogKey(keyData);
}