簡體   English   中英

查找是否觸發了KeyUp或KeyDown事件

[英]Find if KeyUp or KeyDown event was fired

對於KeyUpKeyDown事件,我有一塊相同的代碼; 唯一的區別是一行代碼,將button.BackColor更改為Color.GrayColor.White 我想將此代碼塊放入單獨的方法中以避免重復,並且兩個事件不同的單行應如下所示:

button.BackColor = (KeyUp was fired) ? Color.Gray : Color.White;

該方法接受KeyEventArgs e作為參數,但是我不知道如何確定eKeyUp還是KeyDown類型。 在C#(winforms)中,JavaScript是否有與event.type屬性類似的event.type 否則,還有其他方法嗎? 謝謝

System.Windows.Forms.KeyEventArgs無法確定該事件是否由於KeyUpKeyDown事件而引發。 最好的選擇是使用不同的處理方法,這兩種方法都調用一個通用方法,即

private void OnKeyDown(object sender, KeyEventArgs eventArgs)
{
    HandleKeyState(false, eventArgs);
}

private void OnKeyUp(object sender, KeyEventArgs eventArgs)
{
    HandleKeyState(true, eventArgs);
}

private void HandleKeyState(bool isKeyUp, KeyEventArgs eventArgs)
{
    button.BackColor = isKeyUp ? Color.Gray : Color.White;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM