2015-03-30 49 views
0

我想让用户可以自定义检测的按键。 尽管如此,在按键点之后使用变量仍然无效。它说它不是一个成员。我可以尝试什么?通过变量检测按键Visual Basic

If keysformovment = "customized" Then 
     If e.KeyCode = Keys.moveToRight Then 
      MoveRight = False 
     End If 
     If e.KeyCode = Keys.moveToLeft Then 
      MoveLeft = False 
     End If 
    End If 
+1

我不认为您向我们展示了足够的代码。什么是“Keys”,以及如何存储定制密钥? – crashmstr 2015-03-30 18:27:34

回答

0

Keys是一个枚举。它是.NET框架的一部分。它在System.Windows.Forms命名空间中声明。这里是枚举的MSDN article。如果您好奇,here是它的源代码(在C#中)。

就像任何其他枚举一样,点之后的名称必须是在枚举中声明的有效名称之一。但是,由于枚举中的所有值都是Integer,因此您可以将KeyCode的值与整数进行比较。例如,由于Keys.Left = 37,下面的两件事是相同的:

If e.KeyCode = Keys.Left Then 
    ' ... 
End If 

是一样的:

Dim moveToLeft As Integer = 37 
If e.KeyCode = moveToLeft Then 
    ' ... 
End If 

然而,这将是更好地保持类型为枚举值尽可能,只处理价值尽可能低的Integer。换句话说,尽可能在代码中尽可能地键入它,然后尽可能快地将其从一个整数转换为枚举。例如:

Public Function LoadKeySetting() As Keys 
    Dim value As Integer = ' Load from file 
    Return CType(value, Keys) 
End Function 

' ... 

Dim moveToLeft As Keys = LoadKeySetting() 
If e.KeyCode = moveToLeft Then 
    ' ... 
End If