2009-08-04 14 views
60

के नीचे स्क्रॉल करें मेरे पास एक सी # फॉर्म एप्लिकेशन पर टेक्स्टबॉक्स है। मैं फॉर्मबॉक्स की लोड घटना पर जानकारी के साथ टेक्स्टबॉक्स को पॉप्युलेट करता हूं। मैं फिर निम्नलिखित को कॉल करता हूं:सी # टेक्स्टबॉक्स

this.txtLogEntries.SelectionStart = txtLogEntries.Text.Length; 
this.txtLogEntries.ScrollToCaret(); 

हालांकि टेक्स्टबॉक्स नीचे तक स्क्रॉल नहीं करता है?

यह केवल लोड ईवेंट पर लागू होता है। मैं इसे चलाने के बाद एप्लिकेशन के अन्य हिस्सों से इस टेक्स्टबॉक्स को भी अपडेट करता हूं, और जैसे ही इन घटनाओं में से एक अपडेट टेक्स्टबॉक्स होता है, यह नीचे स्क्रॉल किया जाता है।

तो, फॉर्म लोड ईवेंट में टेक्स्टबॉक्स को पूर्ववत करते समय मैं नीचे स्क्रॉल करने के लिए इसे कैसे प्राप्त कर सकता हूं?

+1

चेक [http://stackoverflow.com/questions/739656/ कैसे-कर सकते हैं-ए-स्क्रॉल करने के लिए एक निर्दिष्ट लाइन में एक-WinForms-पाठ बॉक्स का उपयोग-सी] (http://stackoverflow.com/questions/739656/how-can-i-scroll-to -एक द्वारा निर्दिष्ट लाइन में एक-WinForms-पाठ बॉक्स का उपयोग-ग) – Raghav

उत्तर

92

फार्म में कोड डालने का प्रयास दिखाया गया है घटना:

private void myForm_Shown(object sender, EventArgs e) 
{ 
    txtLogEntries.SelectionStart = txtLogEntries.Text.Length; 
    txtLogEntries.ScrollToCaret(); 
} 
16

Load घटना (होता है से पहले फार्म दिखाया गया है) जबकि संसाधित किया जाता है, वहाँ अभी तक प्रदर्शित करने के लिए कोई रूप नहीं, और इस तरह कोई दृश्य है राज्य स्थापित किया गया है। एक गैर-दृश्य नियंत्रण को स्क्रॉल करना बहुत संभवतः कुछ भी नहीं करता है, क्योंकि, स्क्रॉल करने के लिए कुछ भी नहीं है क्योंकि स्क्रॉलिंग व्यूपोर्ट केवल नियंत्रण पर एक दृश्य है लेकिन इसके राज्य का हिस्सा नहीं है।

आप Shown घटना में स्क्रॉल हिस्सा आगे बढ़ के साथ और अधिक सफलता हो सकती है फार्म की (होता है के बाद प्रपत्र पहले दिखाया गया है)

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