WinForms मैं तुम्हें ठीक से समझ रहा है, तो अपने GameButton usercontrol उन्हें क्लिक करने पर, लेकिन लेबल पर क्लिक किया जाता है जब नहीं ईवेंट सक्रिय करेगा - और आप दोनों चाहते हैं। ऐसा इसलिए है क्योंकि लेबल (नियंत्रण) पृष्ठभूमि के शीर्ष पर है। इसलिए, आपको क्लिक लेबल के साथ अपने लेबल को पंजीकृत करने की आवश्यकता है। यह पृष्ठ पर प्रत्येक नियंत्रण के लिए डिजाइनर या प्रोग्रामेटिक रूप से मैन्युअल रूप से किया जा सकता है।
आप UserControl में हर नियंत्रण करना चाहते हैं, UserControl के OnLoad इवेंट में डाल और आप हर नियंत्रण के लिए एक ही क्लिक करें घटना का उपयोग कर सकते हैं:
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
}
संपादित करें: सबसे अच्छा तरीका है बनाने के लिए है उपयोगकर्ता नियंत्रण में ईवेंट हैंडलर संपत्ति पर क्लिक करें। इस तरह, हर बार जब आप अपने उपयोगकर्ता नियंत्रण में एक क्लिक ईवेंट जोड़ते/हटाते हैं, तो यह स्वचालित रूप से उपयोगकर्ता नियंत्रण में सभी नियंत्रणों को जोड़ता/हटा देता है।
आशा इस मदद करता है:
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, वेबफ़ॉर्म, MVC)? –
माफ करना, WinForms – Oztaco
इसके अलावा, कृपया टैग शामिल होने से बचाया आपके प्रश्न के साथ कुछ भी करने के लिए कुछ भी नहीं है (उदाहरण के लिए विजुअल-स्टूडियो) –