2016-11-03 58 views
0

我想爲一個窗體中的所有文本框分配keyDown事件。將Keydown事件分配給所有文本框

到目前爲止我的代碼:

 void listenTextBox_KeyDownEvent(Control control) 
    { 
     foreach (Control ctrl in control.Controls) 
     { 
      if (ctrl is TextBox) 
      { 
       TextBox tb = (TextBox)ctrl; 
       tb.KeyDown += new EventHandler(textBox_KeyDown); 
      } 
      else 
      { 
       listenTextBox_KeyDownEvent(ctrl); 
      } 
     } 
    } 
    void textBox_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.KeyCode == Keys.Enter) 
     { 
      TextBox tb = (TextBox)sender; 
      MessageBox.Show("Great Enter was hit"); 
     } 

    } 

但我在一個錯誤運行,我不明白:

沒有重載 'textBox_KeyDown' 匹配下放 '事件處理程序'

有什麼建議嗎?

+0

好吧發現我的錯誤不得不改變事件處理程序,以KeyEventHandler –

回答

1

試圖改變

tb.KeyDown += new EventHandler(textBox_KeyDown); 

tb.KeyDown += new KeyEventHandler(textBox_KeyDown); 
+0

這就是我的評論;),但由於品牌認爲明確爲未來的訪客。所以+1 –