Formumun herhangi bir yerinde girilen tuş vuruşlarını nasıl yakalayabilir ve bunu gönder düğmesi etkinliğini tetiklemeye zorlayabilirim?
Formumun herhangi bir yerinde girilen tuş vuruşlarını nasıl yakalayabilir ve bunu gönder düğmesi etkinliğini tetiklemeye zorlayabilirim?
Yanıtlar:
Eğer ayarlarsanız Form
'in AcceptButton
birine özelliği Button
üzerinde s Form
, varsayılan olarak o davranışı alırsınız.
Aksi takdirde, KeyPreview
özelliği true
on olarak ayarlayın Form
ve KeyDown
olayını işleyin. Enter
Anahtarı kontrol edebilir ve gerekli işlemi yapabilirsiniz.
Form özelliklerinde bir düğmeyi "AcceptButton" olarak atayabilirsiniz ve bu, formdaki tüm "Enter" tuşlarına basıp bunları bu denetime yönlendirir.
Bkz. Nasıl Yapılır: Tasarımcıyı Kullanarak Kabul Et Düğmesi olarak bir Windows Form Düğmesi Atama ve ana hatlarını çizdiği birkaç istisnayı (çok satırlı metin kutuları, vb.)
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.
KeyUp
Etkinliğine abone olabilirsiniz TextBox
.
private void txtInput_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
DoSomething();
}
Form, tuşa basmayı engellemek için kullanabileceğiniz bir KeyPreview özelliğine sahiptir.
Basitçe kullan
this.Form.DefaultButton = MyButton.UniqueID;
** Düğme kimliğinizi "MyButton" yerine koyun.