C#如何在按下w,s,a,d按钮时删除'ding'系统声音

Posted

技术标签:

【中文标题】C#如何在按下w,s,a,d按钮时删除\'ding\'系统声音【英文标题】:C# How to remove 'ding' system sound when w,s,a,d buttons are pressedC#如何在按下w,s,a,d按钮时删除'ding'系统声音 【发布时间】:2018-02-28 12:53:29 【问题描述】:

首先我不能用

KeyEventArgs.SuppressKeyPress

因为我使用 Key_Down 事件来监听用户的输入,本质上我正在制作 Pacman 游戏,并且当用户按下 WS AD Windows 发出“叮”的声音。我想禁用它,但我不知道怎么做。 我的 Key_Down 方法:

if (e.KeyCode == Keys.A) //A press moves left
        
            k = 1;
            left = true;
            right = false;
            up = false;
            down = false;
        
        else if(e.KeyCode == Keys.D) //D press moves right
        
            k = 3;
            left = false;
            right = true;
            up = false;
            down = false;
        
        else if(e.KeyCode == Keys.S)
        
            k = 2;
            left = false;
            right = false;
            up = false;
            down = true;
        
        else if(e.KeyCode == Keys.W)
        
            k = 4;
            left = false;
            right = false;
            up = true;
            down = false;
        

我的表单使用了我在用户按下“开始”按钮时禁用的按钮。 我用:

Button.Disable = true; 这可能是由于按钮仍在侦听用户输入还是什么引起的? 我还有一些标签和一个列表框,我也需要禁用它们吗?

【问题讨论】:

disable beep of enter and escape key c sharp的可能重复 将事件设置为已处理? 我将它设置为已处理,但它仍然发出声音 链接代码也使用e.SuppressKeyPress = true。你应该试试。 你必须下定决心。您可以使用 wasd 移动游戏对象您可以将其用于文本输入。两者都不是。 【参考方案1】:

如果您使用的是 .NET 框架,请在处理后添加这行代码:

        e.SuppressKeyPress = true;

【讨论】:

以上是关于C#如何在按下w,s,a,d按钮时删除'ding'系统声音的主要内容,如果未能解决你的问题,请参考以下文章

如何在按下 dbnavigator 删除按钮后根据决定中止删除记录?

在按下标签按钮时删除占位符

Vue.js - 在悬停时添加删除按钮并在按下按钮时删除它

如何在按下按钮后禁用按钮,然后重新启用它?

如何仅在按下按钮时更新位置

Android:如何在按下按钮时关闭一个活动并在按下另一个按钮时关闭整个后台堆栈? [复制]