2012-11-09 9 views
6

पैनल में मैं पैनल में शुरू होने वाले बटन/टेक्स्टबॉक्स जैसे नियंत्रण (0,0) जैसे नियंत्रण खींचता हूं। ये नियंत्रण अदृश्य और शुरुआत में अक्षम हैं। मेरे पास पैनल के बाहर एक बटन है जो दबाए जाने पर इन बटन/टेक्स्टबॉक्स को दृश्यमान बनाता है और उन्हें पैनल में किसी नए स्थान पर स्थानांतरित करता है।पैनल को स्क्रॉल करते समय Winform पैनल में एक बटन पेंटिंग

समस्या यह है कि उपयोगकर्ता ने पैनल को कुछ (x, y) तक स्क्रॉल किया और फिर 'दृश्यमान' बटन दबाएं बटन के नए (x, y) स्थान को वर्तमान (x, y) स्थान से गणना की जाती है पैनल के - पैनल के शीर्ष (0,0) से नहीं।

मुझे आश्चर्य है कि यह पैनल का सही व्यवहार है और इसे ठीक करने के लिए मुझे this.VerticalScroll.Value को (x, y) ऑफसेट के रूप में विचार करने की आवश्यकता है जब मैं बटन को दोबारा स्थानांतरित करता हूं।

enter image description here

+2

बटन के स्थान को समायोजित करने के लिए आपको पैनल की ऑटोस्क्रोलपोजिशन प्रॉपर्टी का उपयोग करने की आवश्यकता होगी। –

+0

चित्र चित्रण अपेक्षित और वर्तमान व्यवहार दिखाने में मदद करेंगे। – Neolisk

+0

मेरे पास एक तस्वीर है लेकिन इसे पोस्ट करने में सक्षम नहीं था ... SO पर अधिक प्रतिष्ठा की आवश्यकता है। @HansPassant MSDN AutoScrollPosition से मुझे जो चाहिए वह दिखता है। MyButton.Location = नया प्वाइंट ( 0 + पैनल 1.AutoScrollPosition.X, 0 + panel1.AutoScrollPosition.Y); – Davvit

उत्तर

0

सुनिश्चित नहीं हैं कि अगर यह अपनी स्थिति में मदद मिलेगी, लेकिन मुझे लगता है कि यह कोशिश कर रहा लायक है:

आप दृश्य डिजाइनर का उपयोग कर पैनल डिजाइन करने के लिए थे, तो मेरा सुझाव है दो पैनलों का उपयोग कर: सभी नियंत्रणों वाला एक पूर्ण आकार वाला व्यक्ति, इसका आकार आसान डिज़ाइनिंग की अनुमति देता है; और छोटा वह जिसका उद्देश्य भौतिक आकार है। फिर बस बड़े को छोटे से एकमात्र बच्चे के रूप में जोड़ें (जैसे नीचे पैनेल में आंतरिक पैनल)।

अधिक जानकारी के लिए इस आलेख को Article: WinForms AutoScroll Experiment देखें।

2

यह मेरे लिए काम करता है। जब आप आप बटन/पाठ बॉक्स आदि के वाई मिलता है:

relativeControlTop = theControl.Top - thePanel.AutoScrollPosition.Y;

आप शीर्ष सेट करते हैं कार्य करें:

relativeControlTop = theControl.Top + thePanel.AutoScrollPosition.Y;

आशा इस मदद करता है।

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