Если я правильно вас понимаю, ваш пользовательский контроль GameButton будет запускать событие при нажатии, но не при нажатии на ярлык - и вам нужны оба.Это потому, что метка (элемент управления) находится сверху фона.Поэтому вам также необходимо зарегистрировать свой ярлык с событием 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
}
РЕДАКТИРОВАТЬ: лучший способзаключается в создании свойства обработчика события 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;
}
}
}
Это как в другой записи :
Надеюсь, это поможет!