簡體   English   中英

C#:在文本框的 keydown 事件中,如何檢測當前按下的修飾符 + 鍵?

[英]C#: In the keydown event of a textbox, how do you detect currently pressed modifiers + keys?

C#:在文本框的 keydown 事件中,如何檢測當前按下的修飾符 + 鍵?

我做了以下操作,但我對這些運算符不太熟悉,所以我不確定我是否以及我做錯了什么。

    private void txtShortcut_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Modifiers == (Keys.Alt || Keys.Control || Keys.Shift))
        {
            lbLogger.Items.Add(e.Modifiers.ToString() + " + " +
                "show non-modifier key being pressed here");
        }
    }

1)如何檢查 e 是否包含任何修飾鍵?

根據msdn鏈接

private void txtShortcut_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Alt || e.Control || e.Shift))
        {
            lbLogger.Items.Add(e.ToString() + " + " +
                "show non-modifier key being pressed here");
        }
    }

文檔說它是按位組合,但你正在做一個邏輯或。

嘗試:

if (e.Modifiers & (Keys.Alt | Keys.Control | Keys.Shift))
{
    lbLogger.Items.Add(e.Modifiers.ToString() + " + " +
        "show non-modifier key being pressed here");
}

而且我認為您可以使用 e.KeyCode.ToString() 獲取實際密鑰。

暫無
暫無

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

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