[英]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.