Можно записать на keyDown любого управления:
if (e.KeyCode == Keys.Enter)
{
if (this.GetNextControl(ActiveControl, true) != null)
{
e.Handled = true;
this.GetNextControl(ActiveControl, true).Focus();
}
}
GetNextControl не работает над Vista.
, Чтобы заставить его работать с Vista необходимо будет использовать код ниже для замены этого. GetNextControl...:
System.Windows.Forms.SendKeys.Send("{TAB}");
Взятие произвольного предположения:
// on enter event handler
parentForm.GetNextControl().Focus();
Я объединил бы то, на что Pharabus и arul ответили как это:
private void textBox_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == ‘\r’)
{
e.Handled = true;
parentForm.GetNextControl().Focus()
}
}
Сообщенный мне, если это помогает! JFV
Вы не должны делать, "вводят обработчик событий"
Все, что необходимо сделать, делают "центральное" событие KeyDown:
пример
private void General_KeyDown(object sender, KeyPressEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
if (this.GetNextControl(ActiveControl, true) != null)
{
e.Handled = true;
this.GetNextControl(ActiveControl, true).Focus();
}
}
}
Затем все, что необходимо сделать, является движением к выбору разработчика все текстовые поля, которые Вы хотите циклически повторить через с EnterKey (выберите их удержанием Ctrl и текстового поля нажатия с мышью), затем перейдите к Событиям (кнопка Мне нравится грома), поисковому событию Keydown и типу в General_KeyDown. Теперь все Ваши выбранные Текстовые поля будут иметь то же keydown событие :) This, делает все muuuuch намного легче, причина воображают форму с 100 текстовыми полями, и Вы хотите циклически повториться через все с, вводят.... создание независимо, событие для каждого texbox является... хорошо не надлежащим способом сделать программу, это не аккуратно. Надеюсь, что это помогло!!
Блок цитирования
Для тех из вас, кто использует код в vb ...
Public Class NoReturnTextBox
Inherits System.Windows.Forms.TextBox
Const CARRIAGE_RETURN As Char = Chr(13)
' Trap for return key....
Private Sub NoReturnTextBox_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles Me.KeyPress
If e.KeyChar = CARRIAGE_RETURN Then
e.Handled = True
System.Windows.Forms.SendKeys.Send(vbTab)
End If
End Sub
End Class