Windows Formları - Tuşa basma, gönder düğmesini etkinleştirir mi?


96

Formumun herhangi bir yerinde girilen tuş vuruşlarını nasıl yakalayabilir ve bunu gönder düğmesi etkinliğini tetiklemeye zorlayabilirim?


8
Öyleyse neden Matt Hamilton'ın cevabında AcceptButton özelliğine basmıyorsunuz?
Mukus

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

Yanıtlar:


197

Eğer ayarlarsanız Form'in AcceptButtonbirine özelliği Buttonüzerinde s Form, varsayılan olarak o davranışı alırsınız.

Aksi takdirde, KeyPreviewözelliği trueon olarak ayarlayın Formve KeyDownolayını işleyin. EnterAnahtarı kontrol edebilir ve gerekli işlemi yapabilirsiniz.


8
ve Escape tuşuna basmak için CancelButton'u unutmayın
WholeLifeLearner

1
Harika! Framewrok'umu daha iyi bilmem gerekiyor;)
Jack 15

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


11

Daha önce belirtildiği gibi, formun ayarlamak AcceptButton düğmelerinin birine özelliğini VE ayarlamak DialogResult o düğme için özellik DialogResult.OK iletişim kabul veya görevden alındı olmadığını bilmek arayan için sırayla.


6

KeyUpEtkinliğine abone olabilirsiniz TextBox.

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

1
Tam da aradığım şey. Düğme iletişim sonucunu Tamam olarak ayarladım ve ENTER'ın çalışması için gereksiz kod yazmak istemedim!
Kristjan1215



0

Formunuzdaki KeyPreview özniteliğini True olarak ayarlayın, ardından Enter tuşunu algılamak için form düzeyinizdeki KeyPress olayını kullanın. Tespit edildiğinde, "gönder" düğmesi için sahip olduğunuz kodu arayın.


0
  if (e.KeyCode.ToString() == "Return")
  { 
      //do something
  }
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.