2011-04-08 138 views
2
Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown 

我需要使用e.keyValue檢查DELETE鍵的keyValue是什麼?檢查DELETE鍵是否被按下?

回答

7

KeyEventArgs對象包含一個名爲 「KeyCode」 成員,你可以比較的 「Keys」 枚舉。

請注意,如果某些鍵由默認窗口系統處理,則它們可能不會引發KeyDown事件。我不確定,現在我無法檢查它,但是您可能無法獲得Tab,Delete,Enter等鍵的KeyDown事件。

您通常可以這樣做(這是C#不是VB,但應該類似):

public void MyControl_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.KeyCode == Keys.Delete) 
    { 
     // delete was pressed 
    } 
} 
2

檢查Keys枚舉...

2

比較e.keyValueKeys.Delete

2

如果設置的KeyPreview形式的財產,然後形成事件被傳遞給具有焦點的控制權之前將收到的關鍵事件。例如,如果表單上有文本框和按鈕,通常它們(具有焦點的控件)將捕獲按鍵事件。所以請確保設置爲KeyPreview=true

使用此功能可以捕獲關鍵代碼。

Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown 
    If e.KeyCode = Keys.Delete Then 
     'todo 
    End If 
End Sub