मैं वीएस -2010 डिजाइनर में कुछ डॉक किए गए पैनल के लिए जेड-ऑर्डर बदलने की कोशिश कर रहा हूं। हालांकि, हर बार जब मैं डिज़ाइनर को सहेजता हूं, इसे बंद कर देता हूं और इसे फिर से खोलता हूं, तो ज़ेड-ऑर्डर वापस आ गया है कि मैंने इसे बदलने से पहले कैसे किया था।वीएस -2010 डिजाइनर जेड-ऑर्डर
मैंने दस्तावेज़ रूपरेखा और SendToBack संदर्भ मेनू का उपयोग करने का प्रयास किया है, लेकिन दोनों एक ही तरीके से व्यवहार करते हैं। मैंने यह भी देखा है कि एक और समाधान में जहां यह काम करता है, .designer.cs फ़ाइल वास्तव में परिवर्तित नहीं होती है (मुझे लगता है कि नियंत्रण जोड़ने का क्रम जेड-ऑर्डर को निर्देशित करेगा)।
क्या कोई और तरीका है जो मैं कर सकता हूं? मैं वास्तव में कार्यावधि में यह करने के लिए नहीं चाहता ...
संपादित
this.mainPanel.BackColor = System.Drawing.SystemColors.Control;
this.mainPanel.Controls.Add(this.pnlRangeSelector);
this.mainPanel.Controls.Add(this.headerAndFooterRowCounts);
pnlRangeSelector Dock.Top headerAndFooterRowCounts है Dock.Right
जब यह तथापि प्रस्तुत हुई है, headerAndFooterRowCounts लेता है इसके मूल पैनल के पूरे दाहिने तरफ, जबकि pnlRangeSlector वामपंथी भाग लेता है।
यह मुझे बताता है कि pnlRangeSelector पीछे की तरह सही नहीं है जैसा कि यह माना जाता है।
अद्यतन
int i = 0;
String output = String.Empty;
foreach (var c in this.mainPanel.Controls)
{
if (c == pnlRangeSelector) { output += "RangeSelector at : " + i.ToString() + "\r\n"; }
else if (c == this.headerAndFooterRowCounts) { output += "HeaderAndFooter at : " + i.ToString() + "\r\n"; }
i++;
}
MessageBox.Show(output);
लगता क्रम हमेशा RangeSelector = 0, HeaderAndFooter = 1. यहां तक कि अगर मैं फोन निम्नलिखित सिर्फ इस से पहले है:
this.mainPanel.Controls.SetChildIndex(this.pnlRangeSelector, 1);
this.mainPanel.Controls.SetChildIndex(this.headerAndFooterRowCounts, 0);
नियंत्रण पहले से ही सही क्रम में जुड़ जाते हैं (पहली पृष्ठभूमि पैनल, अगले अग्रभूमि पैनल): यह है कि मैं क्या डिजाइनर कोड में किया था इस समस्या को ठीक करने के लिए है। – Ian
संग्रह में घोषित या जोड़ा गया? क्या आप कोड पोस्ट कर सकते हैं? –
डिजाइनर से जोड़ने कोड जोड़ा गया। – Ian