2009-09-01 76 views
2

我想使它無論哪個控件具有焦點,它都會執行我的事件。這樣我就不必爲我的所有對象編寫一個keydown事件。這可能嗎?對於整個應用程序的Keydown事件VB .Net

感謝

+0

注意,如果它通過表單的KeyPreview是不可能的,你可以簡單地遞歸遍歷窗體的控件,並在運行時指定一個事件的控件。只要它們具有相同的簽名,事件就很容易重用。 – overslacked 2009-09-01 19:34:30

回答

4

你有你的窗體的KeyPreview屬性設置爲

當此屬性設置爲true, 形式將接收所有的按鍵響應, KeyDown和KEYUP事件。

1

我不是專家,但我相信這是可能的。我已經完成了之前我有一個事件處理程序處理多個按鈕按下,然後根據哪個按鈕具有焦點做不同的事情。

的代碼是是這樣的:

For Each ctl in Me.Controls 
If ctl.Type is <whatever type of control you want to handle> And ctl.Isfocused Then 
Do whatever 
End If 
Next 

您不必擔心遞歸類似的東西。

如果您希望每個控件執行相同的操作,無論哪個控件具有焦點,它都會更容易。

Private Sub keypresshandle (System arguments ignore this) Handles key1.press, key2.press etc .... key10000.press 
do some stuff here 
End Sub 
相關問題