2012-11-22 9 views
7

ऐसा लगता है कि Windows फॉर्म में RichTextBox में यह ClearUndo() विधि है (system.windows.forms.textboxbase. देखें)।मैं RichTextBox नियंत्रण के पूर्ववत स्टैक से कोई कार्रवाई कैसे हटा सकता हूं?

मुझे RichTextBox Control में कुछ समान की आवश्यकता है। ऐसा इसलिए है क्योंकि (जैसा कि यहां बताया गया है: Preventing a RichTextBox operation from being added to the control's Undo stack) प्रत्येक परिवर्तन RichTextBox के पूर्ववत स्टैक में जोड़ा जाता है।

मुझे OnTextChanged ईवेंट ओवरराइड करना और यूनो स्टैक से इनमें से कुछ परिवर्तनों को हटाना पसंद है। मैं उसे कैसे कर सकता हूँ?

धन्यवाद।

उत्तर

11

आप नीचे दिए गए कोड के साथ WPF RichTextBox नियंत्रण के लिए ClearUndo() का अनुकरण कर सकते हैं:

richTextBox.IsUndoEnabled = false; 
richTextBox.IsUndoEnabled = true; 

लेकिन वहाँ कोई रास्ता नहीं आप Undo सूची में किसी विशेष क्रियाओं को नियंत्रित कर सकता है।

यदि आप अभी भी अपने Undo/Redo तंत्र को कार्यान्वित करना चाहते हैं, तो सबसे महत्वपूर्ण और सबसे सरल तरीका प्रत्येक महत्वपूर्ण टेक्स्ट परिवर्तन पर नियंत्रण के पूरे पाठ को एक सरणी में स्टोर करना है। लेकिन मैं केवल तभी सलाह दूंगा जब आप नियंत्रण के साथ बड़े पाठ को संपादित करने की योजना नहीं बना रहे हों।

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