मैं जो मैन्युअल रूप से नियंत्रण की तरहएक usercontrol की मूल स्थापना में पारदर्शिता रखने
MyUserControl ctrl = new MyUserControl();
कुछ के साथ बनाई गई है करने के लिए डिजाइन किया गया है एक सरल उपयोगकर्ता नियंत्रण बना लिया है से BackColor = Color.Transparent रोकता है और यह ठीक काम करता है, जब तक कि मैं अभिभावक को उस रूप में नियंत्रण के सेट पर सेट करता हूं, जिस समय यह फ़ॉर्म के रंग में बदल जाता है।
इसकी पारदर्शी की तरह लग सकता है लेकिन यह क्या है जो फॉर्म पर मौजूद सभी नियंत्रणों को छुपाता है। मुझे 100% यकीन नहीं है कि यह नियंत्रण एक ठोस पृष्ठभूमि या कुछ और हो रहा है जो मैं इसे हुक करता हूं, जो अन्य नियंत्रणों को दिखने से रोकता है।
मूल रूप से यदि आप इस
- एक रूप
- बनाएं बटन के लिए उस पर एक बटन ड्रॉप
- क्लिक हैंडलर में आप निम्न उपाय अपनाते हैं
उदाहरण
करनाMyUserControl ctrl = new MyUserControl();
ctrl.Parent = this;
ctrl.BackColor = Color.Transparent;
ctrl.Size = this.Parent.ClientRectangle.Size;
ctrl.Location = this.Parent.ClientRectangle.Location;
ctrl.BringToFront();
ctrl.Show();
असल में मैं फॉर्म पर अंडरलेइंग नियंत्रण दिखाते हुए उपयोगकर्ता नियंत्रण को पूरे रूप में ओवरले करना चाहते हैं (इसलिए पारदर्शी पृष्ठभूमि)। मैं इसे फॉर्म कंट्रोल संग्रह में जोड़ना नहीं चाहता क्योंकि यह वास्तव में फॉर्म से संबंधित नहीं है, यह सिर्फ बाकी सब कुछ के ऊपर दिखाया जा रहा है
मैंने ऐसा करने की कोशिश की, लेकिन माता-पिता को सेट किए बिना, लेकिन फिर नियंत्रण बिल्कुल नहीं दिखाया गया।
धन्यवाद!
संपादित करें: यदि मैं उपयोगकर्ता नियंत्रण में ऑनपेंटबैकग्राउंड विधि को ओवरराइड करता हूं और पृष्ठभूमि को चित्रित होने से रोकता हूं तो यह काम करता है, हालांकि यह एक पीएनजी छवि के पारदर्शी हिस्सों के साथ गड़बड़ कर रहा है, जो ड्रॉइमेज का उपयोग करके नियंत्रण में चित्रकारी करता है, जो समझ में आता है।
क्या आपका मतलब है कि नियंत्रण विंडो बनाते समय मुझे WS_CLIPCHILDREN ध्वज का उपयोग करना चाहिए? – TheCodeJunkie
नहीं, मुझे नहीं लगता कि आपका मतलब है WS_EX_TRANSPARENT – TheCodeJunkie
मैंने इसे अभी देखा है। आपको EXPRANSPARENT (0x00000020) के साथ CreateParams ऑब्जेक्ट्स की ExStyle प्रॉपर्टी चाहिए या –