मेरे पास एक कस्टम नियंत्रण में एक combobox है। मैं अपने कस्टम नियंत्रण को लागू करने वाले किसी भी चीज़/चीज़ को चुनिंदा इंडेक्स चेंज या कीप्रेस इत्यादि से विशिष्ट घटनाओं का खुलासा कैसे कर सकता हूं?अंतर्निहित नियंत्रण की घटनाओं का खुलासा
उत्तर
आप इस तरह की घटनाओं अग्रेषित कर सकते हैं।:
public event EventHandler SelectedIndexChanged
{
add { inner.SelectedIndexChanged += value; }
remove { inner.SelectedIndexChanged -= value; }
}
आपको इन्हें स्वयं नियंत्रण में कोड करने की आवश्यकता होगी - उपयोगकर्ता नियंत्रण स्वचालित रूप से अपने बाल नियंत्रण की घटनाओं को बढ़ावा नहीं देता है। इसके बाद आप पार तार उपयोगकर्ता नियंत्रण के पदोन्नत घटना के लिए अपने वास्तविक नियंत्रण कर सकते हैं:
public event EventHandler SelectedIndexChanged;
private void OnSelectedIndexChanged(object sender, EventArgs e)
{
if (SelectedIndexChanged != null)
SelectedIndexChanged(sender, e);
}
public UserControl1()
{
InitializeComponent();
cb.SelectedIndexChanged += new EventHandler(OnSelectedIndexChanged);
}
दुर्भाग्य से आप हर घटना आप में रुचि रखते हैं के लिए यह करने के लिए की आवश्यकता होगी
बल्कि होने कस्टम घटनाओं की तुलना में एक बहुत ही सरल समाधान, कस्टम नियंत्रण के एक संपत्ति के रूप में नेस्टेड नियंत्रण बेनकाब करने के लिए किया जाएगा। वहां से आप ईवेंट हैंडलर को बहुत आसानी से संलग्न कर सकते हैं। बाल नियंत्रण का पर्दाफाश करने के लिए हमेशा सलाह नहीं दी जाती है, लेकिन नियंत्रण प्रकार और आप इसका उपयोग कैसे कर रहे हैं, यह काम कर सकती है।
डिजाइनर पर, आपके कस्टम नियंत्रण में, के तहत "डिजाइन" सेट "संशोधक" बता गया संपत्ति आंतरिक करने पर:
//create an instance of my control
MyCustomControl controlInstance = new MyCustomControl();
//attach and event handler to the exposed subcontrol
controlInstance.SaveButton.Click += new EventHandler(SaveButton_Click);
को बुलाया गया है यह गलत नहीं है, लेकिन उन पाठकों के लिए कस्टम उपयोगकर्ता नियंत्रण बनाने में अच्छी तरह से ज्ञात नहीं है, यह ध्यान दिया जाना चाहिए कि इनमें से एक बाल नियंत्रण का पर्दाफाश करने के लिए सलाह देने के कारण यह नहीं है कि यह उपयोगकर्ता नियंत्रण के भीतर कार्यक्षमता का एक पूर्ण टुकड़ा encapsulating के उद्देश्य से अधिक उद्देश्य को हरा देता है। पूरे बाल नियंत्रण को उजागर करके आप वास्तव में उपयोगकर्ता नियंत्रण उपभोक्ता को बाल नियंत्रण में हेरफेर करने के लिए प्रोत्साहित करते हैं। इसके बजाए, पूरे उपयोगकर्ता नियंत्रण के बजाए, अपने उपयोगकर्ता नियंत्रण के उपभोक्ताओं द्वारा पूरी तरह से आवश्यक एक या दो घटनाओं को उजागर करने का प्रयास करें। – CobaltBlue
एक और तरीका है डिजाइनर के माध्यम से है कि संभाल करने के लिए नहीं है।
तो जहां कुछ करने के लिए की जरूरत के बारे में जोड़ें:
CustControlName.YourCombo.SelectedIndexChanged += YourCombo_SelectedIndexChanged;
के साथ:
private void YourCombo_SelectedIndexChanged(object sender, EventArgs e)
{
// Code to execute when the SelectedIndexIsChanged goes here
}
थोड़ा और आसानी से काम करता है लेकिन अभी भी टिप्पणी फ़ॉर्म कोबाल्टब्लू के अधीन है – gg89
- 1. पर्चे परत नियंत्रण घटनाओं?
- 2. "खुलासा"?
- 3. विनफॉर्म उपयोगकर्ता नियंत्रण कस्टम घटनाओं
- 4. UITextFieldDelegate बनाम UITextField नियंत्रण घटनाओं
- 5. हस्तांतरण की माउस माता पिता नियंत्रण करने के लिए घटनाओं
- 6. सेलेनियम आर सी और इनपुट नियंत्रण घटनाओं
- 7. घटनाओं को निकालने के लिए नियंत्रण देखें?
- 8. जावास्क्रिप्ट मॉड्यूल पैटर्न का खुलासा - फ़ंक्शन के बाद प्रारंभिक चर का खुलासा
- 9. एएसपीनेट ग्रिडव्यू नियंत्रण में फायरिंग की घटनाओं का अनुक्रम क्या है?
- 10. Backbone.js - 'बॉक्स के बाहर' घटनाओं की सूची?
- 11. उपयोगकर्ता नियंत्रण के माध्यम से किसी ITEMplate का खुलासा कैसे करें?
- 12. परमाणु फ़ीड में डेटा का खुलासा
- 13. मॉड्यूल पैटर्न के नुकसान का खुलासा
- 14. संग्रह संपत्ति का खुलासा कैसे करें?
- 15. सूची ऑब्जेक्ट की अंतर्निहित गुण
- 16. अंतर्निहित WPF फ़ॉन्ट्स की सूची
- 17. जावा + घुमाओ: परिवर्तन की घटनाओं
- 18. जेवीएम की जीसी घटनाओं की प्रोग्रामेटिक अधिसूचना
- 19. "घटनाओं"
- 20. रीढ़ की घटनाओं डोम तत्व
- 21. जेएसएफ 2 घटनाओं की सूची?
- 22. स्ट्रिंग घटनाओं की संख्या गिनती
- 23. ऑनक्लिक घटनाओं का आदेश
- 24. क्या एफ # कभी खुलासा होगा?
- 25. एक जटिल अल्पकालिक वस्तु का खुलासा करने का सही तरीका
- 26. घटनाओं पर क्लिक करने के लिए "पारदर्शी" नियंत्रण बनाना
- 27. नियंत्रण का उपयोग - पैटर्न की आवश्यकता है
- 28. उपयोगकर्ता नियंत्रण घटनाओं के लिए डिज़ाइन समय देखने
- 29. लिंक से एसक्यूएल - अंतर्निहित कॉलम की लंबाई
- 30. समारोह itoa की अंतर्निहित घोषणा c99
अच्छा, नहीं पता था कि इस तरह के एक वाक्य रचना सी # में घटनाओं के लिए उपलब्ध था। तो आप इवेंट हैंडलर असाइनमेंट और हटाने के लिए अनुमान लगाते हुए साइड इफेक्ट्स भी जोड़ सकते हैं (उदाहरण के लिए यदि आप उन्हें स्वयं को संभालना/बनाए रखना चाहते हैं या COM या देशी कोड या हार्डवेयर के साथ कुछ भी करने की आवश्यकता है तो ये हो) –
आपको आवश्यकता है इस के साथ सावधान रहना क्योंकि घटना के प्रेषक बाहरी नियंत्रण नहीं बल्कि आंतरिक हैं। यह इरादा हो सकता है लेकिन ऐसे मामले हैं जहां यह अवांछित हो सकता है। – GDS
यह एक combobox के चयनित इंडेक्स चेंज के लिए ठीक काम कर सकता है लेकिन किसी अन्य ईवेंट के लिए काम करने के लिए थोड़ा और कोड लेता है जैसे चेकबॉक्स की चेकड चेंज। उपरोक्त के समान कोड का उपयोग करने से आपको मूल्य के निकट वाक्यविन्यास मिल जाएगा जबकि उत्तर # 2 ऐसे मामलों के लिए बेहतर काम कर सकता है – gg89