जो मैं करने की कोशिश कर रहा हूं वह एक एमडीआई कंटेनर के रूप में चिह्नित रूप में कुछ गिलास खींचता है। हालांकि जैसे ही IsMdiContainer सेट किया गया है, फॉर्म नियंत्रणों की सूची में एमडीआई क्लाइंट जोड़ता है। इस बिंदु पर माता-पिता के रूप में कुछ होता है - लगभग एक अंधेरे ग्रे पैनल की तरह पूरे फॉर्म में डॉक किया जा रहा है जिस पर MdiClient रखा जा रहा है।एमडीआई पैरेंट फॉर्म पर ग्रे पृष्ठभूमि को कैसे हटाया जाए?
मैं तो करना है रास्ते से बाहर एक सा MdiClient नियंत्रण स्थानांतरित करने के लिए निम्नलिखित:
foreach(var c in Controls)
{
if(c is MdiClient)
{
var client = (MdiClient)c;
client.BackColor = Color.Red;
client.Dock = DockStyle.None;
client.Size = new Size(this.Width-100, this.Height);
break;
}
}
यह तो वास्तविक MdiClient क्षेत्र में आता है छोटे तो हम देख सकते हैं कि (इसके पीछे है बिट को होस्ट बच्चे बनाते हैं) और यह स्पष्ट रूप से स्पष्ट है कि मूल रूप पेंटिंग या कुछ नहीं है।
के रूप में यहां देखा जा सकता: http://img525.imageshack.us/img525/8605/mdiglassproblem.png
मैं अब किसी भी तरह (गहरे भूरे रंग हिस्सा जो कांच खंड पर सफेद प्रदान की गई है) MdiClient के पीछे क्षेत्र पाने के लिए दूर जाने की जरूरत है।
कोई विचार?
पीएस - ग्लास को Vista में DwmExtendFrameIntoClientArea विधि का उपयोग करके प्रस्तुत किया जा रहा है।
बस एक तरफ नोट; "अगर (सी MdiClient है)" लाइन अनावश्यक है। 'As' ऑपरेटर एक ही चेक करता है और गलत होने पर शून्य लौटाता है। तो, बस 'as' ऑपरेटर का उपयोग करें और फिर इसके बजाय शून्य के लिए जांचें। –
... या 'है' के साथ छड़ी और सी शैली कास्ट का उपयोग करें, लेकिन मैं व्यक्तिगत रूप से अन्य दृष्टिकोण पसंद करता हूं। –
उचित पर्याप्त बिंदु। – Dylan