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 AcceptButton
auf eines der Button
s auf dem setzen Form
, wird dieses Verhalten standardmäßig angezeigt.
Andernfalls setzen Sie die KeyPreview
Eigenschaft true
auf Form
und behandeln das KeyDown
Ereignis. Sie können nach dem Enter
Schlü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 KeyUp
Ereignis 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.