Я делаю редактор уровней для игры, используя формы Windows. Форма имеет несколько раскрывающихся меню, текстовых полей и т. Д., Где пользователь может вводить информацию.
Я хочу сделать такие команды, как CTRL + V
или CTRL + A
доступными для работы в самом игровом мире, а не для манипулирования текстом. Игровой мир представлен PictureBox
, содержащимся в Panel
.
Этот обработчик событий никогда не запускается:
private System.Windows.Forms.Panel canvas;
// ...
this.canvas = new System.Windows.Forms.Panel();
// ...
this.canvas.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.canvas_PreviewKeyDown);
Каков предпочтительный способ сделать это? Может ли panel
даже получать ввод с клавиатуры? Я хотел бы позволить пользователю использовать команды copy / paste / select-all при работе с вводом текста, но не при размещении объектов в игровом мире.