Ctrl является клавиша-модификатор, поэтому он не генерирует события нажатия клавиш в своем собственном праве.
Подумайте о нажатии клавиши в качестве фактического символа, который был напечатан (например, «A»). Напротив, клавиши-модификаторы (Ctrl, Alt и Shift) обычно не «набирают» что-либо, они, как правило, работают вместе с другими ключами для модификации их эффекта (например, смена изменений «a» int «A»; ctrl часто меняет «a» на горячую клавишу «Выбрать все», Alt может попытаться открыть главное меню (если есть), которое начинается с буквы «A»)
Чтобы использовать ctrl, вы обычно либо проверяете его состояние на точка, где нажата нормальная клавиша (например, когда нажата «A», чтобы определить, означает ли клавиша «A» или «ctrl + A»), или вы можете проверить состояние ключа асинхронно (например, при перетаскивании, проверка, если ctrl удерживается нажатой, чтобы применить модификацию к такому перетаскиванию, такую как ограничение ее перетаскивания только на одну ось или скопировать файлы, перетаскиваемые, а не перемещение их)
http://stackoverflow.com/questio ns/1367700 –
Возможный дубликат [В чем разница между KeyDown и KeyPress в .NET?] (http://stackoverflow.com/questions/1367700/whats-the-difference-between-keydown-and-keypress-in-net) – Femaref
Используйте e.KeyData, если вы хотите также увидеть ключи-модификаторы. –