मैं कॉम्बोबॉक्स ड्रॉपडाउन (या संदर्भ मेनू सहित उस मामले के लिए अन्य ड्रॉप डाउन) के व्यवहार को मॉडल करने की कोशिश कर रहा हूं, जहां आप कहीं भी क्लिक करते समय ड्रॉप डाउन बंद हो जाते हैं, यहां तक कि किसी भी चीज़ पर ध्यान केंद्रित नहीं किया जा सकता है।कॉम्बोबॉक्स कैसे गिराए जाने पर माउस को कैप्चर करता है?
मैंने MouseCaptureChanged, LostFocus, और Leave जैसे ईवेंट के लिए सदस्यता लेने का प्रयास किया है। मेरे पास एक कस्टम UserControl है जो एक ड्रॉपडाउन के रूप में कार्य कर रहा है और जब उपयोगकर्ता कहीं और क्लिक करता है तो मैं इसे बंद करना चाहता हूं।
ऐसा लगता है कि कई नियंत्रणों में ऐसा कुछ किया गया है, इसलिए मुझे आश्चर्य होगा कि ऐसा करने का कोई आसान तरीका नहीं था।
अब तक किए गए अत्यधिक तरीकों से मैं पिनवोक और सेटकैप्चर() फ़ंक्शन का उपयोग कर रहा हूं, या एक संदेशफिल्टर बनाने के लिए उपयोग कर सकता हूं। यदि ये एकमात्र विकल्प हैं तो मुझे यकीन नहीं है कि कौन सा बेहतर है।
नियंत्रण की तरह एक ड्रॉपडाउन लागू करने के लिए एक आसान तरीका है एक ToolStripControlHost और एक ToolStripDropDown उपयोग करने के लिए है। कॉम्बोबॉक्स की तरह काम करता है। देखें [सूची आइटम को प्रदर्शित करते समय कॉम्बो बॉक्स कैसे करते हैं, सूची को छिपाने के लिए फॉर्म पर कहीं भी माउस ईवेंट को अवरुद्ध करते हैं?] (Http://stackoverflow.com/a/8611382/719186) – LarsTech
मैं ToolStripControlHost को आजमा रहा हूं। पॉपअप के शीर्ष पर एक बदसूरत सीमा से छुटकारा नहीं मिल सकता है, या जब भी आप ड्रॉपडाउन खोलते हैं तो कॉम्बोबॉक्स की झटके से छुटकारा नहीं मिल सकता है। –
ToolStripContorlHost के मार्जिन और टूलस्ट्रिपड्रॉपडाउन के पैडिंग को 0 पर सेट करना सुनिश्चित करें। अपने नियंत्रण पर फ़्लिकरिंग एक अलग समस्या है - क्या आप कस्टम ड्रॉप डाउन के साथ कॉम्बोबॉक्स का उपयोग करने का प्रयास कर रहे हैं? – LarsTech