Если я вас правильно понять, ваш GameButton UserControl будет срабатывать событие при нажатии, но не тогда, когда метка щелкнули - и вы хотите, и другое. Это связано с тем, что метка (элемент управления) находится поверх фона. Поэтому вам необходимо зарегистрировать свой ярлык с событием click. Это можно сделать вручную в дизайнере или программно для каждого элемента управления на странице.
Если вы хотите сделать каждый элемент управления в UserControl, поместить это в событие OnLoad в UserControl, и вы можете использовать то же событие щелчка для каждого элемента управления:
foreach(Control c in this.Controls){
c.Click += new EventHandler(yourEvent_handler_click);
}
public void yourEvent_handler_click (object sender, EventArgs e){
//whatever you want your event handler to do
}
EDIT: Лучший способ заключается в создании щелкните свойство обработчика событий в пользовательском элементе управления. Таким образом, каждый раз, когда вы добавляете/удаляете событие click для своего пользовательского элемента управления, он автоматически добавляет/удаляет его во все элементы управления в пользовательском элементе управления.
public new event EventHandler Click {
add {
base.Click += value;
foreach (Control control in Controls) {
control.Click += value;
}
}
remove {
base.Click -= value;
foreach (Control control in Controls) {
control.Click -= value;
}
}
}
Это, как на другую post:
Надеется, что это помогает!
рамки пользовательского интерфейса (WinForms, WPF, WebForms, MVC)? –
извините, WinForms – Oztaco
Также избегайте в том числе тегов которые не имеют ничего общего с вашим вопросом (например, visual-studio). –