Если вы ищете обычные ключи, вы можете сохранить их в списке: В KeyDown добавьте ключ в список. При Key Up удалите его из списка. На KeyDown проверьте, что в списке.
Однако я не уверен, что для клавиш-модификаторов, таких как ctrl, shift, alt, есть события keydown / keyup. Для тех, кто может сделать что-то вроде этого:
bool CtrlDown = ((e.Modifiers & Keys.Control) > 0);
bool CtrlOnlyModifierDown = ((e.ModifierKeys & Keys.Control) == Keys.Control)