我正在捕获一个KeyDown
事件,我需要能够检查当前按下的键是否是:Ctrl++ ?ShiftM
我知道我需要使用e.KeyData
from KeyEventArgs
、Keys
enum 以及带有 Enum Flags 和 bits 的东西,但我不确定如何检查组合。
我正在捕获一个KeyDown
事件,我需要能够检查当前按下的键是否是:Ctrl++ ?ShiftM
我知道我需要使用e.KeyData
from KeyEventArgs
、Keys
enum 以及带有 Enum Flags 和 bits 的东西,但我不确定如何检查组合。
您需要使用 KeyEventArgs 类的Modifiers属性。
就像是:
//asumming e is of type KeyEventArgs (such as it is
// on a KeyDown event handler
// ..
bool ctrlShiftM; //will be true if the combination Ctrl + Shift + M is pressed, false otherwise
ctrlShiftM = ((e.KeyCode == Keys.M) && // test for M pressed
((e.Modifiers & Keys.Shift) != 0) && // test for Shift modifier
((e.Modifiers & Keys.Control) != 0)); // test for Ctrl modifier
if (ctrlShiftM == true)
{
Console.WriteLine("[Ctrl] + [Shift] + M was pressed");
}
我认为最容易使用这个:
if(e.KeyData == (Keys.Control | Keys.G))
您可以使用类似于以下的技术进行检查:
if(Control.ModifierKeys == Keys.Control && Control.ModifierKeys == Keys.Shift)
这与正常的密钥检查相结合将为您提供您寻求的答案。