2011-10-28 19 views
10

मैं एक पाठ संपादक जहाँ मैं बोल्ड, रंग बदल आदि आदिकुछ पाठ एक अमीर पाठ बॉक्स सी # में बोल्ड बनाने के लिए

मैं इस कोड को मोटे तौर पर काम करने के लिए मिल सकता है बनाना चाहते:

public static void BoldSelectedText(RichTextBox control) 
{ 
    control.SelectionFont = new Font(control.Font.FontFamily, control.Font.Size,   FontStyle.Bold); 
} 

लेकिन जब मैं आरटीएफ को और अधिक अक्षरों में लिखने की कोशिश करता हूं तो यह अभी भी बोल्ड है ..

मैं ऐसा कैसे कर सकता हूं कि केवल चयनित टेक्स्ट बोल्ड हो रहा है और अगली पंक्तियां तब तक नहीं रहेंगी जब तक कि मैं टेक्स्ट का चयन नहीं करता और "मेक" बोल्ड "बटन।

उत्तर

14

आपको चयन के बाद फ़ॉन्ट को मूल फ़ॉन्ट पर सेट करना चाहिए।

यदि आप चाहते हैं कि आप SelectionStart और SelectionLength बचाएं और फिर से टेक्स्ट का चयन करने के लिए Select विधि पर कॉल करें।

// Remember selection 
int selstart = control.SelectionStart; 
int sellength = control.SelectionLength; 

// Set font of selected text 
// You can use FontStyle.Bold | FontStyle.Italic to apply more than one style 
control.SelectionFont = new Font(control.Font, FontStyle.Bold); 

// Set cursor after selected text 
control.SelectionStart = control.SelectionStart + control.SelectionLength; 
control.SelectionLength = 0; 
// Set font immediately after selection 
control.SelectionFont = control.Font; 

// Reselect previous text 
control.Select(selstart, sellength); 

इस प्रकार पाठ चयनित रहता है, और बाद में फ़ॉन्ट अभी भी सही है।

+0

thx, यह काम किया :) – chrs

+0

क्या आप जानते हैं कि मैं बोल्ड और इटैलिक टेक्स्ट कैसे कर सकता हूं? – chrs

+1

http://stackoverflow.com/questions/4198429/substract-flag-from-fontstyle-toggling-fontstyles-c जिसने – chrs

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