按下并按住键时,确保语句仅执行一次.

Fre*_*Vaz 3 c# windows keyboard winforms

如果按住小键盘上的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!
   }
}
Run Code Online (Sandbox Code Playgroud)

Evg*_*ich 6

您可以在按键上设置标记并在按键上重置它.

    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;
    }
Run Code Online (Sandbox Code Playgroud)