मुझे एक साधारण अंतर मिला, जिसे इस धागे में संबोधित नहीं किया गया है।
यदि आप ScrollToCarat()अपने फॉर्म के Load()ईवेंट के हिस्से के रूप में सभी कॉल कर रहे हैं , तो यह काम नहीं करता है। मैंने सिर्फ ScrollToCarat()अपने फॉर्म के Activated()ईवेंट में अपना कॉल जोड़ा , और यह ठीक काम करता है।
संपादित करें
केवल पहली बार फ़ॉर्म की Activatedघटना को स्क्रॉल करना महत्वपूर्ण है (बाद में सक्रियणों पर नहीं), या यह हर बार स्क्रॉल करेगा कि आपका फ़ॉर्म सक्रिय है, जो कुछ ऐसा है जो आप शायद नहीं चाहते हैं।
इसलिए यदि आप केवल Activated()अपने कार्यक्रम को स्क्रॉल करने के लिए इवेंट को ट्रैप कर रहे हैं जब आपका प्रोग्राम लोड होता है, तो आप ईवेंट हैंडलर के अंदर ईवेंट को अनसब्सक्राइब कर सकते हैं, इस प्रकार:
Activated -= new System.EventHandler(this.Form1_Activated);
यदि आपके पास अन्य चीजें हैं जो आपको अपने फॉर्म के सक्रिय होने पर हर बार करने की आवश्यकता होती हैं, तो आप boolपहली बार अपने सच को सेट कर सकते हैंActivated() , तो आप ईवेंट को निकाल दिए , इसलिए आप बाद की सक्रियताओं पर स्क्रॉल नहीं करते हैं, लेकिन फिर भी सकती है, जिनकी आपको आवश्यकता है करना।
इसके अलावा, अगर आपका TextBoxटैब किसी ऐसे टैब पर है SelectedTab, जिसका ScrollToCarat()कोई प्रभाव नहीं है। इसलिए आपको स्क्रॉल करते समय कम से कम इसे चयनित टैब बनाने की आवश्यकता है। जब आप ऐसा करते हैं तो आप कोड को एक YourTab.SuspendLayout();और YourTab.ResumeLayout(false);जोड़ी में लपेट सकते हैं ।
संपादन का अंत
उम्मीद है की यह मदद करेगा!