2009-09-04 19 views
6

Aşağıda, Ctrl + F (başka bir SO kaydından) kodu verilmiştir. Ancak, Ctrl + ForwardSlash'u nasıl algılarsınız? ya Ctrl + /:WinForm uygulamasında Ctrl - Forward Slash nasıl algılanır

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
    { 
     if (1 == 1) //keyData == (Keys.Control | Keys.F)) 
     { 
      MessageBox.Show("What the Ctrl+F?"); 
      return true; 
     } 
     return base.ProcessCmdKey(ref msg, keyData); 
    } 
+0

Denetim değiştirici, Bölünme yerine Soru - en azından ABD klavyelerinde soru sormasını sağlar. –

cevap

9

Böl iyi çalışması gerekir (not bölmek çalışmıyor).

için Ctrl + \:

if (keyData == (Keys.Control | Keys.OemPipe)) 

+ / Ctrliçin: Nedense

if (keyData == (Keys.Control | Keys.OemQuestion)) 

(emin değilim neden), sen tuzak Ctrl + bu tuşlar, "kaydırılmış" anahtar eşlemle eşleştiriliyor rinde.


Düzenleme:

biri bu bulmak için hile veya başka herhangi bir tuşa basın. Bu yöntemdeki herhangi bir satırda bir kesme noktası ayarlayın ve yakalamaya çalıştığınız tuşa bastığınızda keyData değerine bakın. Bunu kontrol etmeden yapmanı öneririm. Daha sonra Keys için tüm spesifik değerleri almak için reflektörü kullanabilir ve "anahtar" ı uygun değerle birlikte bulabilirsiniz.

+0

benim için çalışmadı. not:/Yukarıdaki veya bunun yakınında hakkında konuşuyorum. Sayısal tuş takımında değil (dizüstü bilgisayarınızdaysanız). Bir mesaj kutusunda gerçek anahtar kodları yakalamak ve sonra sadece sayısal kodları kullanarak yeniden yazmak için herhangi bir basit yolu? – BuddyJoe

+0

@Tyndall: Bunu sadece test ettim. Yeni cevabım size doğru cevabı verecektir. –

+0

Klavyemde ters eğik çizgi giriliyor. – recursive