Jak mogę przechwycić naciśnięcia klawiszy w dowolnym miejscu formularza i zmusić go do uruchomienia zdarzenia przycisku przesyłania?
Jak mogę przechwycić naciśnięcia klawiszy w dowolnym miejscu formularza i zmusić go do uruchomienia zdarzenia przycisku przesyłania?
Odpowiedzi:
Jeśli Twoje ustawienia Form„s AcceptButtonwłaściwość do jednego z ButtonS na Form, dostaniesz to zachowanie domyślne.
W przeciwnym razie ustaw KeyPreviewwłaściwość truena Formi obsłuż jej KeyDownzdarzenie. Możesz sprawdzić Enterklucz i podjąć niezbędne działania.
Możesz wyznaczyć przycisk jako „AcceptButton” we właściwościach formularza, który będzie przechwytywał wszelkie naciśnięcia klawiszy „Enter” w formularzu i kierował je do tej kontrolki.
Zobacz, jak: wyznaczyć przycisk Windows Forms jako przycisk akceptacji za pomocą projektanta i zwróć uwagę na kilka wyjątków, które przedstawia (wielowierszowe pola tekstowe itp.)
Jak wspomniano wcześniej, ustaw właściwość AcceptButton formularza na jeden z jego przycisków ORAZ ustaw właściwość DialogResult dla tego przycisku na DialogResult.OK , aby wywołujący wiedział, czy okno dialogowe zostało zaakceptowane, czy odrzucone.
Możesz zapisać się na KeyUpwydarzenie TextBox.
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DoSomething();
}
Form ma właściwość KeyPreview , której można użyć do przechwycenia naciśnięcia klawisza.
Po prostu użyj
this.Form.DefaultButton = MyButton.UniqueID;
** Umieść identyfikator przycisku w miejscu „MyButton”.