Один обработчик событий для всех элементов управления в виде

У меня есть проблема с настройкой одного и того же обработчика событий для всех элементов управления в форме. Я хочу обрабатывать нажатые кнопки F5-F7, равномерно в моем приложении, поэтому я пытаюсь зарегистрировать тот же обработчик событий для всех элементов управления в форме. Я вставил

foreach (System.Windows.Forms.Control cont in this.Controls)
                cont.KeyDown += new System.Windows.Forms.KeyEventHandler(this.MainForm_KeyPress);

в функции инициализирующих (). Не против названия Mainform_keyPkeypress, на самом деле это обработчик событий в классе.

Я также пытался вставить код в мою функцию init (), которая вызывается из конструктора. Но результат был таким же: событие не происходит, когда я нажимаю клавиши. Фокус на одной из кнопок формы.

Но если я реализую обработчик для одной из кнопок с помощью инструмента Design (Имя функции копирования в поле «Событие CAYPRESS), событие правильно поднимает, если кнопка находится в фокусе.

Любые идеи, почему Foreach не работал?

5
задан John Saunders 14 September 2011 в 02:39
поделиться