2010-02-11 17 views
8

मेरे पास एक सी # विंडोज फॉर्म प्रोग्राम है जिसमें RichTextBox नियंत्रण है। जब भी बॉक्स के अंदर पाठ बदल जाता है (उस परिवर्तन को टाइप करने के अलावा), कर्सर शुरुआत में वापस जाता है।विंडोज फॉर्म RichTextBox कर्सर स्थिति

दूसरे शब्दों में, जब टेक्स्ट प्रॉपर्टी का उपयोग करके RichTextBox में टेक्स्ट बदल दिया जाता है, तो यह कर्सर वापस कूदता है।

मैं कर्सर को उसी स्थिति में कैसे रख सकता हूं या इसे संपादित टेक्स्ट के साथ ले जा सकता हूं?

धन्यवाद

उत्तर

12

आप परिवर्तन करने से पहले कर्सर स्थिति स्टोर कर सकते हैं, और फिर बाद में इसे फिर से स्थापित:

int i = richTextBox1.SelectionStart; 
richTextBox1.Text += "foo"; 
richTextBox1.SelectionStart = i; 

तुम भी SelectionLength साथ भी ऐसा ही करने के लिए यदि आप नहीं करना चाहते हैं चाहते हो सकता है हाइलाइट को हटा दें। ध्यान दें कि अगर सम्मिलित पाठ चयन के अंदर है तो इससे अजीब व्यवहार हो सकता है। फिर आपको सम्मिलित टेक्स्ट की लंबाई शामिल करने के लिए चयन को विस्तारित करने की आवश्यकता होगी।

richTextBox1.Focus(); 
int i = richTextBox1.SelectionStart; 
richTextBox1.Text = strPreviousBuffer; 
richTextBox1.SelectionStart = i; 
2

, सावधान रहें कोई ताज़ा करता है या परिवर्तन करता है, तो पूरी तरह से RichTextBox सामग्री, ध्यान विधि क्रम कैरेट को हिलाने के लिए पहले से invoqued किया जाना चाहिए। this.richTextBox1.Select(this.richTextBox1.Text.Length, 0); यह टेक्स्ट के अंत में 0 वर्णों को चिह्नित करता है और कर्सर को

समाप्त करने के लिए सेट करता है
0

यहाँ एक छोटे से एक है, एक ही प्रभाव पड़ता है कि है:

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