2009-07-06 12 views
11

मैं सी # में एमडीआई फॉर्म के बैकग्राउंड रंग को कैसे बदल सकता हूं?एक एमडीआई फॉर्म की पृष्ठभूमि बदलें

मैंने पृष्ठभूमि रंग संपत्ति का उपयोग करके इसे बदल दिया लेकिन रंग बदल नहीं गया है।

इस कार्य को करने के लिए मुझे क्या करना चाहिए?

उत्तर

24

एमडीआई नियंत्रण का वास्तविक बैकग्राउंड रंग विंडोज वर्तमान थीम में रंग पर आधारित है। आपको WinForm के अंदर शारीरिक रूप से MdiClient नियंत्रण की पृष्ठभूमि सेट करना होगा।

// #1 
    foreach (Control control in this.Controls) 
    { 
     // #2 
     MdiClient client = control as MdiClient; 
     if (!(client == null)) 
     { 
      // #3 
      client.BackColor = GetYourColour(); 
      // 4# 
      break; 
     } 
    } 

संपादित करें - जोड़ा टिप्पणियाँ:

  1. हम MdiParent रूप में नियंत्रण के माध्यम से पाश जोड़ा जाता है कि जब आप प्रपत्र सेट एक MdiParent होने की MdiClient नियंत्रण लगाने के लिए की जरूरत है। पूर्वानुमान संग्रह के माध्यम से एक प्रकार का एक साधारण पुनरावृत्ति है।

  2. हमें फॉर्म के भीतर MdiClient नियंत्रण खोजने की आवश्यकता है, इसलिए ऐसा करने के लिए हमने 'as' कीवर्ड का उपयोग करके लूप के भीतर वर्तमान नियंत्रण डाला। 'As' कीवर्ड का उपयोग करना मतलब है कि यदि कास्ट अमान्य है तो चर सेट होने वाला चर शून्य होगा। इसलिए हम यह देखने के लिए जांच करते हैं कि 'क्लाइंट' शून्य है या नहीं। यदि ऐसा है, तो लूप में वर्तमान नियंत्रण MdiClient नियंत्रण नहीं है। जैसे ही वेरिएबल 'क्लाइंट' शून्य नहीं है, तब हमारे पास जो नियंत्रण है, वह एमडीआई क्लाइंट है और हम इसका पृष्ठभूमि रंग सेट कर सकते हैं।

  3. बैककोल को अपनी इच्छित चीज़ों पर सेट करें। बस जो भी रंग आप चाहते हैं उसके साथ "GetYourColour()" को प्रतिस्थापित करें, यानी रंग। व्हाइट, रंग। ब्लू, रंग। FromArgb (आदि) ...

  4. जैसा कि केवल 1 एमडी क्लाइंट है, लूप जारी रखने का कोई मतलब नहीं है क्योंकि यह सिर्फ समय प्रसंस्करण का अपशिष्ट है। इसलिए हम लूप से बाहर निकलने के लिए 'ब्रेक' कहते हैं।

मुझे पता है आप कुछ और समझा चाहते हैं करते हैं।

+0

आपके उत्तर के लिए धन्यवाद। आपके कोडिंग की मदद से मैं अब एमडीआई फॉर्म के पृष्ठभूमि रंग को बदलने में सक्षम हूं। मुझे एक और मदद की ज़रूरत है। चूंकि मैं संभवतः सी # के लिए नया हूं, तो क्या आप कृपया कोडिंग को समझा सकते हैं? बहुत बहुत धन्यवाद !! – sheetal

+2

निश्चित रूप से, मैं कोड – GenericTypeTea

+1

पर कुछ टिप्पणियां जोड़ूंगा बहुत बहुत धन्यवाद !! बहुत अच्छी व्याख्या !! धन्यवाद एक बहुत – sheetal

0

इसे अपने एमडीआई फॉर्म की अपनी लोड विधि में लिखें।

Controls.OfType<MdiClient>().FirstOrDefault().BackColor = Color.Purple; 
संबंधित मुद्दे