Formulir Windows - Masukkan penekanan tombol mengaktifkan tombol kirim?


95

Bagaimana cara menangkap penekanan tombol enter di mana saja di formulir saya dan memaksanya untuk mengaktifkan acara tombol kirim?


8
Jadi mengapa Anda tidak menekan properti AcceptButton pada jawaban Matt Hamilton?
Mukus

gunakan 'this.Form.DefaultButton = MyButton.UniqueID;'
Bino Kochumol Varghese

Jawaban:


196

Jika Anda menetapkan Form's AcceptButtonproperti untuk salah satu Buttons pada Form, Anda akan mendapatkan bahwa perilaku secara default.

Jika tidak, setel KeyPreviewproperti ke truedi Formdan tangani KeyDownacaranya. Anda dapat memeriksa Enterkuncinya dan mengambil tindakan yang diperlukan.


8
dan jangan lupa tentang CancelButton untuk menangani
tekanan

1
Hebat! Saya perlu tahu lebih baik Framewrok saya;)
Jack

24
private void textBox_KeyDown(object sender, KeyEventArgs e) 
{
    if (e.KeyCode == Keys.Enter)
        button.PerformClick();
}


10

Seperti yang dinyatakan sebelumnya, setel properti AcceptButton formulir Anda ke salah satu tombolnya DAN setel properti DialogResult untuk tombol itu ke DialogResult.OK , agar pemanggil mengetahui apakah dialog diterima atau ditutup.


6

Anda dapat berlangganan ke KeyUpacara TextBox.

private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Enter)
       DoSomething();
}

1
Hanya apa yang saya cari. Saya memiliki hasil dialograf tombol yang disetel ke OK dan tidak ingin menulis kode yang tidak perlu agar ENTER berfungsi!
Kristjan1215



0

Setel atribut KeyPreview pada formulir Anda ke True, lalu gunakan acara KeyPress di tingkat formulir Anda untuk mendeteksi tombol Enter. Saat deteksi, panggil kode apa pun yang Anda miliki untuk tombol "kirim".


0
  if (e.KeyCode.ToString() == "Return")
  { 
      //do something
  }
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.