【问题标题】:How to convert variable to double (KeyValue) in KeyDown in Visual Basic如何在 Visual Basic 的 KeyDown 中将变量转换为双精度(KeyValue)
【发布时间】:2018-03-31 19:28:50
【问题描述】:

我有这个代码:

Private Sub key(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
    If e.KeyValue = Keys.Enter Then
        If FuSt = False Then
            FuSt = True
            My.Computer.Audio.Play(My.Settings.Full)
        Else
            FuSt = False
            My.Computer.Audio.Play(DIRECOTRY)
        End If
    End If
    If e.KeyValue = b1 Then
        My.Computer.Audio.Play(SoundsDir & "1.wav")
    End If
End Sub

但是当我想玩 b1(键盘上的 Z 按钮)时,我遇到了这个错误:

从 "z" 到 Double 的对话是不正确的(有些想法)

你能帮帮我吗?

【问题讨论】:

  • 在比较中混合字符串和枚举不是一个好主意。而是使用 KeyPress 事件来检测诸如“z”之类的键入键。
  • Keys.Z替换b1?

标签: vb.net variables keydown playsound


【解决方案1】:

要将键分配给变量 b1,请尝试如下所述。

Keys 是一个枚举。

Dim b1 As Keys
b1 = Keys.Z

喜欢Hans Passant评论,如果你想使用KeyPress事件(推荐),试试下面的代码。

   Private Sub Form1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles Me.KeyPress
        If e.KeyChar = Char.ToLower(ChrW(Keys.Z)) Then
            MsgBox("Z selecetd")
        End If
    End Sub

或者如果您想参加KeyDown 事件,请尝试以下代码。

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
    If e.KeyCode.Equals(Keys.Z) Then
        MsgBox("Z selecetd")
    End If
End Sub

【讨论】:

  • 是的,我知道,但我想 Keys.z 在变量 b1 中
  • 更新了答案。你可以试试看。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-12
  • 1970-01-01
  • 2018-11-12
  • 1970-01-01
相关资源
最近更新 更多