Это на самом деле довольно легко:
class jail {
int inmate;
public:
int& escape() { return inmate; }
};
if (e.KeyCode == Keys.C && e.Modifiers == (Keys.Control | Keys.Shift))
{
//Do work
}
else if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control)
{
//Paste
}
Have you tried e.Modifiers == (Keys.Control | Keys.Shift)
?
Если вы хотите разрешить Ctrl и Shift , тогда используйте побитовое ИЛИ (поскольку ключи
- это флаги
enum)
if (e.KeyCode == Keys.C && e.Modifiers == (Keys.Control | Keys.Shift))
{
//Do work (if Ctrl-Shift-C is pressed, but not if Alt is pressed as well)
}
else if (e.KeyCode == Keys.V && e.Modifiers == Keys.Control)
{
//Paste (if Ctrl is only modifier pressed)
}
Ошибка, если также нажать Alt
Другой способ - добавить невидимый пункт меню, назначив ему ярлык Ctrl + Shift + C , и обработать событие там.
Попробуйте это. Должен вести себя так, как вы хотите, и это немного проще.
if (e.Control)
{
if (e.Shift && e.KeyCode == Keys.C)
{
//Do work
}
else if (e.KeyCode == Keys.V)
{
//Paste
}
}