2010-08-09 27 views
9

एक एंकर मैं निम्न पंक्ति लिख सकते हैं के साथ करने के लिए डॉक करने के लिए:कैसे ऊपर और छोड़ दिया

myControl.Anchor = (AnchorStyles.Top | AnchorStyles.Left); 

और यह छोड़ दिया और शीर्ष करने के लिए myControl लंगर होगा।

मैं निम्नलिखित क्यों नहीं कर सकते हैं:

myControl.Dock = (DockStyle.Top | DockStyle.Left); 

मैं ऊपर लाइन में लिख सकते हैं, लेकिन सभी यह करता छोड़ दिया करने के लिए DockStyle निर्धारित है।

इसके लिए कोई विचार/कारण?

+0

मुझे लगता है कि आपने डॉक, एंकर और किसी प्रकार के कंटेनर नियंत्रण (जैसे TableLayoutPanel) का उपयोग कर वांछित लेआउट प्राप्त करने के लिए पूरी तरह से समझ नहीं लिया है। इन तत्वों के साथ आप हर प्रकार के लेआउट का निर्माण करने में सक्षम हैं जो आपके फॉर्म/नियंत्रण के आकार के साथ अच्छी तरह से स्केल करेगा। इसलिए यदि आप अपने लेआउट में जो हासिल करना चाहते हैं, उसके बारे में अधिक जानकारी प्रदान करते हैं तो मुझे यकीन है कि हम समाधान ढूंढ सकते हैं। – Oliver

उत्तर

11

कारण यह नहीं है कि आप ऐसा नहीं कर सकते क्योंकि DockStyle मूल रूप से डॉक्स/निर्दिष्ट किनारे की entirity भरता है।

उदाहरण के लिए, DockStyle.Left मतलब यह है कि आइटम की ऊंचाई डॉक किया जा रहा है हमेशा कंटेनर और एक्स की ऊंचाई हो जाएगा, वाई स्थान हमेशा 0 हो जाएगा, 0.

DockStyle.Top मतलब यह है कि की चौड़ाई आइटम हमेशा कंटेनर की चौड़ाई होगी और स्थान हमेशा 0,0 होगा।

DockStyle.Top और DockStyle.Left सेट करना अनिवार्य रूप से आपको DockStyle.Fill देगा। अर्थात। कंटेनर के समान ऊंचाई और ऊंचाई।

+0

धन्यवाद जीटी, जो बताता है कि मैं क्या देख रहा हूं। मुझे एक बार यह जानने के लिए एक और सवाल उठाना पड़ सकता है कि मैं इसे प्राप्त करने की कोशिश कर रहा हूं, एक बार जब मैं इसे समझूं कि इसे कैसे वाक्यांशित किया जाए! – AidanO

+0

कोई समस्या नहीं है। मैं डॉकिंग और खुद को लंगरने के सभी दर्दों से गुजर रहा हूं, इसलिए मैं अगले प्रश्न के लिए नजर रखूंगा। – GenericTypeTea

1

DockStyle केवल Anchor के विपरीत, एक मान पर सेट किया जा सकता है जिसे कई में सेट किया जा सकता है।

यही कारण है कि Anchor संपत्ति है ताकि आप समायोजित कर सकें कि नियंत्रण कैसे विशेष रूप से आकार बदलने के रूप में प्रतिक्रिया करता है।

+0

यह सच है, लेकिन डॉकिंग पर इस प्रतिबंध का कारण क्या है और क्या इसके आसपास कोई रास्ता है? – AidanO

+0

मुझे एक विशिष्ट कारण पता नहीं है, मुझे लगता है कि डॉक केवल सरल, आसान डॉकिंग नियंत्रणों के लिए है और गुणक होने पर काम नहीं करेगा (उदाहरण के लिए आपको डॉक स्टाइल भरना नहीं होगा और कोई भी नहीं) इसलिए यही कारण है कि एंकर भी। – w69rdy

3

Dock एक पूर्व-निर्धारित एंकर सेट है, जबकि Anchor एक कस्टम डॉक कॉन्फ़िगरेशन है।

DockStyle.TopAnchor = (AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right) जैसा ही है, सिवाय इसके कि एक एंकर किसी भी प्रारंभिक स्थिति पर बैठ सकता है और एक डॉक दूर किनारे पर चलेगा।

+0

वे थोड़े समान हैं, लेकिन वे समान नहीं हैं। एंकरिंग आपको कंटेनर के किनारों से दूर स्थानों को सेट करने की अनुमति देता है। डॉकिंग डॉक किए गए नियंत्रण को निर्दिष्ट किनारे पर मजबूर करता है। अर्थात। बाएं = 0. शीर्ष = 0. – GenericTypeTea

+0

@ जेनरिक टाइप टाइप मैंने अपने उत्तर में यह कहा – Codesleuth

+0

तो आपने किया। मेरी माफ़ी, मैंने स्पष्ट रूप से इसे ठीक से नहीं पढ़ा। – GenericTypeTea

संबंधित मुद्दे