Willkommen bei SO Tex,
Ich glaube, es gibt zwei Methoden, um dies zu erreichen, würde bedeuten, nur Zugabe:
Option 1: Ergreifung der nächste Steuer wenn ein Geben Sie KeyPress ausgeführt wurde
Legen Sie in den Eigenschaften Ihres Formulars die KeyPreview Eigenschaft des Formulars zu true
fest.
Der folgende Code wird erfassen Ihre „Enter-Taste“ Ereignis und führen Sie die Logik, die Sie suchen:
private void [YourFormName]_KeyDown(object sender, KeyEventArgs e)
{
Control nextControl ;
//Checks if the Enter Key was Pressed
if (e.KeyCode == Keys.Enter)
{
//If so, it gets the next control and applies the focus to it
nextControl = GetNextControl(ActiveControl, !e.Shift);
if (nextControl == null)
{
nextControl = GetNextControl(null, true);
}
nextControl.Focus();
//Finally - it suppresses the Enter Key
e.SuppressKeyPress = true;
}
}
Dies ermöglicht es tatsächlich für den Benutzer „Shift + Enter“ drücken, um die gehen Registerkarte weitergehen.
Option 2: Verwenden der SendKeys Methode
private void [YourFormName]_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
SendKeys.Send("{TAB}");
}
}
Ich bin nicht sicher, ob diese Methode kann noch häufig verwendet wird, oder ein „Hack“ in Betracht gezogen werden? Ich würde die erste empfehlen, aber ich glaube, beide sollten für Ihre Bedürfnisse arbeiten.
möglich Duplikat von [Wie auf einem TextBox wirken als TAB Enter-Taste machen] (http://stackoverflow.com/questions/371329/how-to-make-enter-on-a-Textfeld-act-as-tab-button) –
Es ist erwähnenswert, dass dies * nicht * das Standardverhalten in Windows ist. Ein Überschreiben ist nicht nur verwirrend für Ihre Benutzer, sondern der Versuch, die Standardeinstellungen zu überschreiben, ist immer mehr Arbeit, als nur so zu handeln, wie es von Ihrer Plattform erwartet wird. Code wie dieser kann leicht zu einem Wartungsalbtraum werden, in dem seltsame Bugs lauern. –