WinForm KeyDown事件怎么记录2个键

Teln_小凯 2013-11-27 03:23:25
目前测试的时候
按住W不放 会一直输出W

然后按住J之后 就会一直输出J

但是我想WJ都输出怎么做?


就是类似WASD控制走路 J KL 控制人物技能攻击等操作

如何在KeyDown里面处理 现在弄出来的 人走的时候 不能开枪 开枪的时候不能走,求思路
...全文
232 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Teln_小凯 2013-12-02
  • 打赏
  • 举报
回复
引用 9 楼 u012804018 的回复:
[quote=引用 8 楼 qq873113580 的回复:] [quote=引用 7 楼 u012804018 的回复:] [quote=引用 6 楼 qq873113580 的回复:] [quote=引用 5 楼 u012804018 的回复:]
    Dim a As String
    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        a = a & e.KeyCode
        If (a = "6870" Or a = "7068") Then 'D 和  F同时按下
            MessageBox.Show(a)
        End If
    End Sub

    Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
        a = Nothing
    End Sub
a = a & e.KeyCode这句有点不明白 &是加 还是啥?[/quote] 这是VB.Net写的&等于C#的+就是连字符[/quote] 明白了 3Q[/quote] 你这么快就结贴了啊,我还想看看有没有比这更好的方法呢,这种方法可能对你做游戏的并不怎么好感觉...[/quote] 嗯 是的最后用一个线程去监测的 比这好点 谢谢了哈
鏡椛氹鈅 2013-11-27
  • 打赏
  • 举报
回复
引用 8 楼 qq873113580 的回复:
[quote=引用 7 楼 u012804018 的回复:] [quote=引用 6 楼 qq873113580 的回复:] [quote=引用 5 楼 u012804018 的回复:]
    Dim a As String
    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        a = a & e.KeyCode
        If (a = "6870" Or a = "7068") Then 'D 和  F同时按下
            MessageBox.Show(a)
        End If
    End Sub

    Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
        a = Nothing
    End Sub
a = a & e.KeyCode这句有点不明白 &是加 还是啥?[/quote] 这是VB.Net写的&等于C#的+就是连字符[/quote] 明白了 3Q[/quote] 你这么快就结贴了啊,我还想看看有没有比这更好的方法呢,这种方法可能对你做游戏的并不怎么好感觉...
Teln_小凯 2013-11-27
  • 打赏
  • 举报
回复
引用 7 楼 u012804018 的回复:
[quote=引用 6 楼 qq873113580 的回复:] [quote=引用 5 楼 u012804018 的回复:]
    Dim a As String
    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        a = a & e.KeyCode
        If (a = "6870" Or a = "7068") Then 'D 和  F同时按下
            MessageBox.Show(a)
        End If
    End Sub

    Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
        a = Nothing
    End Sub
a = a & e.KeyCode这句有点不明白 &是加 还是啥?[/quote] 这是VB.Net写的&等于C#的+就是连字符[/quote] 明白了 3Q
鏡椛氹鈅 2013-11-27
  • 打赏
  • 举报
回复
引用 6 楼 qq873113580 的回复:
[quote=引用 5 楼 u012804018 的回复:]
    Dim a As String
    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        a = a & e.KeyCode
        If (a = "6870" Or a = "7068") Then 'D 和  F同时按下
            MessageBox.Show(a)
        End If
    End Sub

    Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
        a = Nothing
    End Sub
a = a & e.KeyCode这句有点不明白 &是加 还是啥?[/quote] 这是VB.Net写的&等于C#的+就是连字符
Teln_小凯 2013-11-27
  • 打赏
  • 举报
回复
引用 5 楼 u012804018 的回复:
    Dim a As String
    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        a = a & e.KeyCode
        If (a = "6870" Or a = "7068") Then 'D 和  F同时按下
            MessageBox.Show(a)
        End If
    End Sub

    Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
        a = Nothing
    End Sub
a = a & e.KeyCode这句有点不明白 &是加 还是啥?
鏡椛氹鈅 2013-11-27
  • 打赏
  • 举报
回复
    Dim a As String
    Private Sub Form1_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
        a = a & e.KeyCode
        If (a = "6870" Or a = "7068") Then 'D 和  F同时按下
            MessageBox.Show(a)
        End If
    End Sub

    Private Sub Form1_KeyUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyUp
        a = Nothing
    End Sub
Teln_小凯 2013-11-27
  • 打赏
  • 举报
回复
引用 1 楼 nanbaifeiliao 的回复:
在keydown里面,if(e.KeyCode == Keys.W && e.KeyCode ==Keys.J)
这样不行 每次获取的都是 按下的那个
bdmh 2013-11-27
  • 打赏
  • 举报
回复
引用 1 楼 nanbaifeiliao 的回复:
在keydown里面,if(e.KeyCode == Keys.W && e.KeyCode ==Keys.J)
没事吧,怎么可能keycode同时等于两个值
nanbaifeiliao 2013-11-27
  • 打赏
  • 举报
回复
在keydown里面,if(e.KeyCode == Keys.W && e.KeyCode ==Keys.J)

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧