2009-08-03 13 views
15

मैं एक विंडोज़ फॉर्म एप्लीकेशन (.NET 2.0, VS 2005) विकसित कर रहा हूं।स्क्रॉलबार को एक आकार बदलने योग्य पैनल में कैसे दिखाना है जब निहित नियंत्रण इसके लिए बहुत बड़ा है?

this.panel1.Dock=DockStyle.Fill; 

यह पैनल बस एक कंटेनर के रूप में प्रयोग किया जाता है: मैं एक रूप है कि अनिवार्य रूप से एक पैनल है कि गतिशील रूप से फार्म के साथ आकार दिया जाता है शामिल है। रनटाइम पर, एक कस्टम नियंत्रण जोड़ दिया जाएगा:

: इस कस्टम नियंत्रण एक न्यूनतम आकार आवश्यकता है

UserControl uc=new UserControl(); 
panel1.Controls.Add(uc); 
uc.Dock=DockStyle.Fill; 

रूप में, मैं सलाखों स्क्रॉल युक्त पैनल पर प्रकट करने के अगर यह पूरे नियंत्रण दिखाने के लिए बहुत छोटा हो जाता है चाहता हूँ

this.panel1.AutoScroll=true; 

यह काम नहीं करता है। मैंने डॉक संपत्ति की बजाय एंकर संपत्ति का उपयोग करके पैनल का आकार बदलने का प्रयास किया है, इसका कोई फायदा नहीं हुआ है।

उत्तर

24

अपने उपयोगकर्ता नियंत्रण को डॉक न करें। इसके बजाय एंकर संपत्ति का उपयोग करें। (सभी चार तरफ एंकर)। आप उपयोगकर्ता नियंत्रण के सेट MinimumSize संपत्ति पैनल की AutoScrollMinSize संपत्ति

पैनल के स्क्रॉलबार सेट जब तक आप अपने AutoScrollMinSize गुण सेट दिखाई नहीं देगा। उपयोगकर्ता नियंत्रण के डॉक को भरने के लिए पैनल के स्क्रॉलबार को छिपाना प्रतीत होता है।

+10

डॉक प्रॉपर्टी पैनल और उपयोगकर्ता नियंत्रण दोनों के लिए ठीक है, जब तक ऑटोस्क्रॉलमिन्स आकार सेट हो (http://social.msdn.microsoft.com/Forums/ en-US/WinForms/धागा/56267eb1-25af-4df2-82a3-0498563c7eef)। – Mac

+0

एंकरिंग हालांकि डॉकिंग के समान नहीं है। उदाहरण के लिए यदि मैं एक डॉक किए गए नियंत्रण को अदृश्य बना देता हूं तो यह स्वचालित रूप से निम्न नियंत्रणों को पुनर्व्यवस्थित करता है। एंकरिंग आपको यह क्षमता नहीं देती है। डॉकिंग बहुत उपयोगी है लेकिन ओपी की तरह यह हमेशा काम नहीं करता है क्योंकि आप माता-पिता ऑटोस्कोल नियंत्रण के साथ आशा करते हैं - यहां तक ​​कि डॉक किए गए नियंत्रण के न्यूनतम आकार को सेट करते समय भी – Gwynge

2

बाद InitializeComponent संवाद के रूप में, मैं इस किया था और यह काम करने के लिए लग रहा था:

tableLayoutPanel1.AutoScrollMinSize = tableLayoutPanel1.GetPreferredSize(new Size(1, 1)); 

मैं तालिका में subpanels का एक समूह है। सभी पंक्तियां और कॉलम ऑटोसाइज पर सेट हैं। किसी कारण से, नियंत्रण पर्याप्त स्मार्ट नहीं है स्क्रॉल नियंत्रण को इसके पसंदीदा आकार को बताएं।

1

पैनल.ऑटोस्क्रॉल = * सही काम - अब! मैंने पैनल और उपयोगकर्ता नियंत्रण दोनों के लिए ऊपर दिए गए विचारों के साथ खेला और खेला, और आखिरकार सबकुछ डिफ़ॉल्ट रूप से रीसेट कर दिया, पैनल पर ऑटोस्कोल सेट करें, और ... voila! किसी भी तरह यह फिर से काम करता है ... आंकड़े जाओ ...

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