У меня есть .NET UserControl (FFX 3.5). Этот элемент управления содержит несколько дочерних элементов управления - панель, пару меток, пару текстовых полей и еще один пользовательский элемент управления. Я хочу обработать щелчок правой кнопкой мыши в любом месте базового элемента управления - поэтому щелкните правой кнопкой мыши любой дочерний элемент управления (или дочерний элемент в случае Panel). Я хотел бы сделать это так, чтобы его можно было обслуживать, если кто-то вносит изменения в элемент управления, не подключая обработчики для новых элементов управления, например.
Сначала я попытался переопределить WndProc, но, как я и подозревал, я получаю сообщения только для кликов в Форме напрямую, а не для его дочерних элементов. В качестве полухака я добавил следующее после InitializeComponent:
foreach (Control c in this.Controls)
{
c.MouseClick += new MouseEventHandler(
delegate(object sender, MouseEventArgs e)
{
// handle the click here
});
}
Теперь он получает щелчки для элементов управления, которые поддерживают событие, но, к примеру, метки до сих пор ничего не получают. Есть ли простой способ сделать это, что я пропускаю?