c# - 确保语句仅在按下并按住某个键时执行一次。

标签 c# windows winforms keyboard

如果您按住小键盘上的 5 键,它将继续执行 KeyDown 事件处理程序中的语句。如何确保语句只执行一次,即使我按住了键?

感谢您的关注。

private void form_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
   if (e.KeyCode == Keys.NumPad5)
   {
        dados.enviar("f"); //I want this to run only once!
   }
}

最佳答案

您可以在按下键时设置标志并在按下键时重置它。

    private bool isPressed = false;
    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
        if(e.KeyCode == Keys.B && !isPressed )
        {
            isPressed = true;
            // do work
        }
    }

    private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        if (isPressed )
            isPressed = false;
    }

关于c# - 确保语句仅在按下并按住某个键时执行一次。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9251522/

相关文章:

Windows 10 : Error code 52 in device manager with correct signature in cross-signed driver

c# - 视觉继承 - 将设计器中的控件添加到 TableLayoutPanel 中托管的面板

c++ - 创建 Windows 窗体控件 (C++)

c++ - 如何捕获 Windows 窗体按钮的鼠标悬停事件

linux - Windows 上的时间(纳秒精度)

c# - Xamarin Forms 和 EntityFramework 属性兼容性

c# - 最小起订量 - 如果类吞噬异常,如何验证方法没有被调用

c# - 如何计算单个点质量?

mysql - Sql 未编译用于 64 位

c# - 无法使用 Server.MapPath