Я не делаю этого на уровне формы. Я создаю один метод, которым я делюсь для всех моих входных событий KeyDown, с которыми я хочу сделать это (с одним исключением):
private void alltextBoxes_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress = true;
SelectNextControl(ActiveControl, true, true, true, true);
}
}
catch
{
}
}
Если я пишу элемент управления, который хочу использовать в других приложениях, я даю последнему вводу свой собственный метод, подобный этому:
private void lastinput_KeyDown(object sender, KeyEventArgs e)
{
try
{
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress = true;
System.Windows.Forms.SendKeys.Send("{TAB}");
}
}
catch
{
}
}
В противном случае элемент управления просто зацикливается внутри себя, когда вы пытаетесь запустить его в другом проекте. Вы можете использовать второй способ везде, но я думаю, что 1-й является предпочтительным способом.