2011-10-29 71 views
1

目前,我有我的vb.net應用程序的啓動鍵硬編碼是這樣的:捕捉按鍵/讓用戶挑選自己開始/停止鍵

GetAsyncKeyState(Keys.F2) 

凡賽斯vb.net「F2作爲System.Windows .Forms.Keys = 113「on mouse-over

但我希望我的用戶能夠選擇他們自己的密鑰。如果我製作一個下拉框(組合框)並在其中預先定義一些選項(如ESC或F3),則所有這些選項都是字符串。我怎樣才能將這些字符串轉換爲System.Windows.Forms.Keys整數?

此外,我希望它也可以「捕捉」一個按鍵。所以他們點擊「捕獲」按鈕,他們點擊的下一個鍵將被保存爲開始/停止按鈕。但我甚至不知道從哪裏開始尋找那一個。

回答

1

嘗試這樣:

Public Class Form1 
    Dim captureKey As Boolean 
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click 
     captureKey = True 
    End Sub 

    Private Sub Button1_PreviewKeyDown(sender As Object, e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles Button1.PreviewKeyDown 
     If captureKey Then 
      Label1.Text = e.KeyValue.ToString 
      captureKey = False 
     End If 

    End Sub 
End Class 

我創建了一個表格爲例一個標籤和一個按鈕。即KeyValue是一個整數,我將其轉換爲一個字符串用於顯示目的。你也有能力捕獲其他keydata。看到這個信息PreviewKeyDownEventArg

至於您的問題的第一部分使用Select Case聲明轉換您的組合框值和關鍵數據值。

+0

謝謝馬克,看起來不錯。 – natli

2
If txtKeys.Text=="F3" Then 
GetAsyncKeyState(Keys.F3) 
End If 
+0

它看起來像你從C#翻譯==是無效的,你也需要一個然後,即如果txtKeys.Text =「F3」然後... –

+0

@Mark Hall你是對的:) –