2012-08-16 19 views
7

Girdi/geri dönülürken MessageBox göstermeyen aşağıdaki kod var.Tespit Anahtar C#

Diğer tüm anahtarlar için (harfler/sayılar), MessageBox öğesi Yanlış gösterir.

private void cbServer_TextChanged(object sender, EventArgs e) 
{ 
    if (enterPressed) 
    { 
     MessageBox.Show("Enter pressed"); 
    } 
    else 
     MessageBox.Show("False"); 
} 

private void cbServer_Keydown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Enter || e.KeyCode == Keys.Return) 
    { 
     enterPressed = true; 
     MessageBox.Show("Enter presssed: " + enterPressed); 

    } 
    else 
     enterPressed = false; 
} 

Herhangi bir fikir?

DÜZENLEME: Kodun üstünde, sorunun _Keydown ile olduğunu düşündüm, bu yüzden sadece bunu yayınladım.

formunuz tasarımcısı sınıfında
+6

gösterilen herhangi bir tuşa algılamak için. Göremiyorum –

+0

Ayrıca. Hata ayıklamayı denediniz mi? OEMReturn kullanmalı veya ne de –

+0

nedir? Ne tür bir kontrol cbServer'tır? bir combobox mı? ve bir wpf veya winforms uygulaması mı? – Steve

cevap

5

Bu zaman nedeni tuşuna basınTextChanged olayına girmeyin.

+0

Teşekkürler, onu sıraladı. – k1f1

7

(formname.designer.cs) Bu ekleyin:

this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Login_KeyPress); 

ve omurga koduna bu kodu eklemek (formname.cs):

void Login_KeyPress(object sender, KeyPressEventArgs e) 
    { 
     if (e.KeyChar == (char)13) 
      MessageBox.Show("ENTER has been pressed!"); 
     else if (e.KeyChar == (char)27) 
      this.Close(); 
    } 
+0

gibi görünüyor ve aynı zamanda formunuzu kapatmak için Escape tuşunu da kullanabilirsiniz, yararlı olabilir düşünüyorum –

+0

this.cbServer.KeyPress + = new System.Windows.Forms.KeyPressEventHandler (this .cbServer_KeyPress); Bu zaten designer.cs dosyasındaydı ... – k1f1

+0

Üzgünüz, Keypress değil KeyDown kullanıyor olduğunu görüyorum .. Sadece, tamlık için teşekkürler – k1f1

0
private void textBox_PreviewKeyDown(object sender, KeyEventArgs e) 
{ 
      if (e.Key == Key.Enter) 
      { 
       MessageBox.Show("Enter key pressed"); 
      } 
      else if (e.Key == Key.Space) 
      { 
       MessageBox.Show("Space key pressed"); 
      } 
} 

Kullanım PreviewKeyDown olay öncesinde metin veya girdi yanlış mesaj kutusu neleri gösterir nasıl