2012-06-25 12 views
5

मुझे आरटीबी में अपने टेक्स्ट के एक निश्चित भाग की आवश्यकता है ताकि फ़ॉन्ट शैली/रंग बदलने की भावना में प्रकाश डाला जा सके, लेकिन किसी विशेष रंग के साथ ब्लॉक चयन करने के अर्थ में। यह समान है कि विजुअल स्टूडियो डीबग मोड के दौरान एक रेखा को हाइलाइट करता है।रिच टेक्स्ट बॉक्स टेक्स्ट ब्लॉक को हाइलाइट करने के लिए कैसे करें

मैं आरटीबी का उपयोग करके इस सुविधा को कैसे पूरा कर सकता हूं, बल्कि यह भी संभव है? यदि यह संभव नहीं है, तो मैं उपर्युक्त कार्य करने का एक और तरीका सुनना चाहता हूं।

+0

के संभावित डुप्लिकेट [के लिए बारी लाइन रंग है कैसे Winforms RichTextBox?] (http://stackoverflow.com/questions/5982006/how-to-have-alternating-line-colors-for-a-winforms-richtextbox) –

+0

मुझे लगता है कि आप [Sci ntillaNET] (http://scintillanet.codeplex.com/)। दूसरी तरफ यदि आप आरटीबी में अपने आप ऐसा करना चाहते हैं तो आप इसे [टेक्स्टबॉक्स बॉक्स.लाइन] का उपयोग करके 'lineNumber' ढूंढकर पहले कर सकते हैं (http://msdn.microsoft.com/en-us/library/system .windows.forms.textboxbase.lines.aspx) संपत्ति। फिर ... // इसके समृद्ध संख्या से लाइन का चयन करें BextBox.GetFirstCharIndexFromLine (lineNumber); richTextBox.Select (startIndex, लंबाई); // चयनित पाठ को आगे और पृष्ठभूमि रंग समृद्ध सेट करें टेक्स्टबॉक्स। चयनकॉलर = सिस्टम। ड्रॉइंग.कॉलर। हाइट; richTextBox.SelectionBackColor = System.Drawin – ABH

उत्तर

7

मुझे लगता है कि आप ScintillaNET देख रहे हैं।

दूसरी तरफ यदि आप आरटीबी में अपने आप ऐसा करना चाहते हैं तो आप इसे TextBoxBase.Lines संपत्ति का उपयोग करके lineNumber ढूंढकर पहले कर सकते हैं। तो फिर ...

//Select the line from it's number 
startIndex = richTextBox.GetFirstCharIndexFromLine(lineNumber); 
richTextBox.Select(startIndex, length); 

//Set the selected text fore and background color 
richTextBox.SelectionColor = System.Drawing.Color.White; 
richTextBox.SelectionBackColor= System.Drawing.Color.Blue; 
+0

क्या आप 'StartIndex' चर' में सहेजने के बजाय 'GetFirstCharIndexFromLine() 'वापसी मान को अनदेखा नहीं कर रहे हैं? – Jack

+1

@ जैक - अपडेट किया गया, हाइलाइट करने के लिए धन्यवाद। – ABH

9

हाँ आप एक RichTextBox चयन की BackColor RichTextBox.SelectionBackColor संपत्ति का उपयोग कर सेट कर सकते हैं।

int blockStart = 1; //arbitrary numbers to test 
int blockLength = 15; 
richTextBox1.SelectionStart = blockStart; 
richTextBox1.SelectionLength = blockLength; 
richTextBox1.SelectionBackColor = Color.Yellow; 
1

यहां मैंने इसे प्राप्त करने के लिए CustomRichTextBox बनाया है।

परिदृश्य के साथ एक लंबे समय तक स्रोत कोड समझाया गया है। यदि आप रुचि रखते है तो आप ज्यादा

परिदृश्य के बारे में चिंता किए बिना सीधे इस usercontrol का पुन: उपयोग कर सकते हैं

https://sites.google.com/site/greateindiaclub/mobil-apps/windows8/customwpfrichtextboxwithcolorchangeandhighlightfunctionality

स्रोत कोड:

https://github.com/boobalaninfo/CustomRichTextBoxWithHighligh

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