2012-03-27 115 views
4

我有一些代碼重寫文本框ProcessCmdKey方法:覆蓋ProcessCmdKey C#

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    switch (keyData) 
    { 
     case: //something to do etc etc. 
    } 
    return true; 
} 

但是當我使用上面的代碼,我不能在文本框寫。有沒有解決方案?

回答

11

一旦你處理一切,它傳遞到基本控制:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) 
{ 
    switch (keyData) 
    { 
     case /* whatever */: 
     // ... 
     default: 
      return base.ProcessCmdKey(ref msg, keyData); 
    } 

    return true; 
} 
+0

是啊,這不是我的回答更好,我們應該始終調用默認的'base'的方法在一個'覆蓋'。 – rfmodulator 2012-03-27 01:51:55

+0

謝謝,這就是我需要:) – 2012-03-27 11:02:47

0

如果你返回true這意味着輸入被處理,它不會傳遞給下一個控件,返回false,它應該如你所期望的那樣工作。

Link