Nếu tôi hiểu bạn đúng cách, usercontrol GameButton của bạn sẽ cháy sự kiện khi nhấp vào, nhưng không phải khi nhãn được nhấp vào - và bạn muốn cả hai. Điều này là do nhãn (điều khiển) nằm trên nền. Do đó, bạn cần phải đăng ký nhãn của mình với sự kiện nhấp chuột. Điều này có thể được thực hiện thủ công trong trình thiết kế hoặc lập trình cho mỗi điều khiển trên trang.
Nếu bạn muốn làm EVERY kiểm soát trong UserControl, đưa điều này vào sự kiện onload của UserControl và bạn có thể sử dụng các sự kiện cùng một nhấp chuột cho mỗi điều khiển:
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: Cách tốt nhất là để tạo ra các bấm vào sự kiện xử lý sự kiện trong điều khiển người dùng. Bằng cách này, mỗi khi bạn thêm/xóa sự kiện nhấp chuột vào điều khiển người dùng của mình, nó sẽ tự động thêm/xóa tất cả các điều khiển trong điều khiển người dùng.
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;
}
}
}
Đây là theo một post:
Hope this helps!
khung UI (Winforms, WPF, Webforms, MVC)? –
xin lỗi, Winforms – Oztaco
Cũng hãy tránh bao gồm các thẻ có ít hoặc không có gì để làm với câu hỏi của bạn (ví dụ như visual-studio) –