фактически ProcessCmdKey не встречается в списке событий формы, поэтому не мог использовать его ранее.
^ _ ^
Я немного отредактировал и изменил его, чтобы определить, доступны ли какие-либо кнопки, и если он есть, он не будет перемещать фокус, вместо этого нажмите кнопку.
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);
Но почему я хочу нажать кнопку один раз, а затем снова перейти к новому элементу управления? Есть ли способ вызвать этот ProcessCmdKey вручную?