private void Form1_KeyDown(object sender, KeyEventArgs e)
{
string t = ModifiersToString(e.Modifiers) + e.KeyCode.ToString();
System.Diagnostics.Debug.WriteLine(t);
}
private string ModifiersToString(Keys keys)
{
string res = string.Empty;
if (keys != Keys.None)
{
if ((keys & Keys.Control) == Keys.Control)
{
res += "Control + ";
}
if ((keys & Keys.Shift) == Keys.Shift)
{
res += "Shift + ";
}
if ((keys & Keys.Alt) == Keys.Alt)
{
res += "Alt + ";
}
}
return res;
}
Но получается какая-то фигня.
Shift + ShiftKey
Control + ControlKey
Control + Alt + Menu
Control + Alt + ControlKey
и т.п.
А если делать двойную проверку по-Дударевски
string t = ModifiersToString(e.Modifiers);
if (e.KeyCode != Keys.ControlKey && e.KeyCode != Keys.ShiftKey && e.KeyCode != Keys.Menu)
t += e.KeyCode.ToString();
System.Diagnostics.Debug.WriteLine(t);
Тогда работает. Но это ведь так не делается, наверное