Wie kann ich Eingabetasten überall in meinem Formular erfassen und erzwingen, dass das Ereignis "Senden" ausgelöst wird?
Wie kann ich Eingabetasten überall in meinem Formular erfassen und erzwingen, dass das Ereignis "Senden" ausgelöst wird?
Antworten:
Wenn Sie die Eigenschaft Ihres Form's AcceptButtonauf eines der Buttons auf dem setzen Form, wird dieses Verhalten standardmäßig angezeigt.
Andernfalls setzen Sie die KeyPreviewEigenschaft trueauf Formund behandeln das KeyDownEreignis. Sie können nach dem EnterSchlüssel suchen und die erforderlichen Maßnahmen ergreifen.
Sie können eine Schaltfläche in den Eigenschaften des Formulars als "AcceptButton" festlegen. Dadurch werden alle "Enter" -Tastendrücke im Formular abgefangen und an dieses Steuerelement weitergeleitet.
Siehe Gewusst wie: Festlegen einer Windows Forms-Schaltfläche als Akzeptierschaltfläche mithilfe des Designers und beachten Sie die wenigen darin beschriebenen Ausnahmen (mehrzeilige Textfelder usw.).
Wie bereits erwähnt, setzen Sie die AcceptButton- Eigenschaft Ihres Formulars auf eine der Schaltflächen UND setzen Sie die DialogResult- Eigenschaft für diese Schaltfläche auf DialogResult.OK , damit der Aufrufer weiß, ob der Dialog akzeptiert oder geschlossen wurde.
Sie können das KeyUpEreignis des abonnieren TextBox.
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DoSomething();
}
Das Formular verfügt über eine KeyPreview- Eigenschaft, mit der Sie den Tastendruck abfangen können.
Einfach benutzen
this.Form.DefaultButton = MyButton.UniqueID;
** Setzen Sie Ihre Button-ID anstelle von 'MyButton' ein.