2010-04-09 16 views
60

में डॉकिंग ऑर्डर को कैसे नियंत्रित करें शीर्षक के अनुसार, मैं उस आदेश को नियंत्रित करने का एक तरीका ढूंढ रहा हूं जिसमें आइटम मेरे नियंत्रण के शीर्ष पर डॉक करता है।WinForms

मैंने विंडोज़ फॉर्म डिज़ाइनर के साथ खेला है, और मुझे लगता है कि RightClick->Order->SendToFront क्या कर रहा है, क्योंकि बिल्कुल मैं क्या करना चाहता हूं। जहां तक ​​मैं ऐसा कर सकता हूं, क्योंकि मैं अपने नियंत्रण में अपनी सामग्री जोड़ता हूं, नवीनतम सामग्री हमेशा शीर्ष पर होती है, और मैं नई सामग्री को नीचे रखना चाहता हूं, और सबसे पुरानी सामग्री शीर्ष।

सारांश: क्या WinForms (C#) में कोई आसान तरीका है, जिसमें नियंत्रण के किनारों पर चीजें नियंत्रित होती हैं?

संपादित करें: मैं पीछे कोड से ऐसा कर के रूप में मैं अपने नियंत्रण जोड़ने के लिए, मैं WinForm के डिजाइनर के किसी भी सुविधाओं का उपयोग नहीं कर सकते, लेकिन मैं क्या करने की कोशिश कर रहा हूँ करने के लिए है, नकल WinForms डिजाइनर है SendToBack और SendToFront विशेषताएं

+0

धन्यवाद; मुझे डॉकिंग को प्रोग्रामेटिक रूप से नियंत्रित करने की आवश्यकता थी और मुझे यह भी एहसास नहीं हुआ कि उनके आदेश ने नियंत्रित किया कि उन्होंने कैसे डॉक किया। –

उत्तर

56

इन तरीकों का उपयोग करें:

myControl.SendToBack(); 
myControl.BringToFront(); 
+1

मैं 'control.SendToFront() 'देख रहा था, अब देखें, यह आसान था। धन्यवाद! – caesay

+8

@ टॉमी: क्या आप आम तौर पर अपने कंप्यूटर के पीछे से प्रोग्राम करते हैं? :) –

+2

डिज़ाइन से विंडो पर, राइट क्लिक करें। sendToBack का चयन करें और राइट क्लिक करें: BringToFont –

4

एक नियंत्रण में जो कुछ आप ढूंढ रहे हैं उसे प्राप्त करने के लिए दो विधियां हैं: BringToFront और SendToBack

112

देखें -> अन्य विंडोज़ -> दस्तावेज़ रूपरेखा।

उस विंडो में नियंत्रण खींचें ताकि डॉकिंग जैसा हो आप इसे पसंद करते हैं।

+0

मैं सोच रहा था कि मैं उस सटीक विंडो का वर्णन करने के लिए किस शब्द का उपयोग कर सकता हूं, अंततः Google पर वहां पहुंचें, धन्यवाद! – Coops

+0

+1 ने कई समस्याओं को व्यवस्थित करने के मामले में –

+0

+1 हल की है –

3

नियंत्रण संग्रह में नियंत्रण जोड़े जा रहे क्रम में डॉकिंग ऑर्डर निर्धारित करता है।

+0

संग्रह – caesay

+2

में नियंत्रण जोड़े जाने के बाद मुझे डॉकिंग ऑर्डर को संपादित करने की आवश्यकता है, फिर 'ControlCollection.SetChildIndex (नियंत्रण, अनुक्रमणिका)' विधि के लिए जाएं। –

+0

@ ओलिवर हनप्पा: क्या यह डिजाइनर में ऐसा करना संभव है? कोड के बिना? – user2366975

10

जैसा कि आपने कहा, नवीनतम नियंत्रण नियंत्रण संग्रह में जोड़ा ऊपर से एक है। यदि आपको नीचे एक नया नियंत्रण जोड़ने की आवश्यकता है, तो मैं नियंत्रणों की एक सूची बनाने, सूची में नियंत्रण जोड़ने, सूची को उलट करने और नियंत्रण संग्रह में सूची जोड़ने का सुझाव दूंगा।

List<Control> controls = new List<Control(); 
controls.Add(new myFirstControl()); 
controls.Add(new mySecondControl()); 
controls.Reverse(); 
this.Controls.AddRange(controls.ToArray()); 
+0

+1 के लिए +1। Resever – hawbsl

-3

FlowLayoutPanel का उपयोग करें जो आप चाहते हैं वही करता है।

+0

यह पोस्ट प्रश्न का उत्तर नहीं देता है, और यह प्रश्न पहले से ही प्रासंगिक उत्तरों के साथ 6 साल का है। – caesay

2

(एक और विकल्प दिखा की खातिर बात के लिए): विजुअल स्टूडियो 2012 (और बाद में) में:

  1. नियंत्रण आप फ्रंट (या वापस) को स्थानांतरित करना चाहते का चयन करें;
  2. नीचे दिए गए चिह्नित बटनों में क्लिक करें (सामने लाएं/वापस भेजें); enter image description here

यह आप अपने वांछित क्रम में नियंत्रण पुनर्व्यवस्थित करने के लिए संभावना दे देंगे।