/ / .NET में रिच टेक्स्ट बॉक्स में कलर टेक्सट - c # .net, vb.net

.NET - c #, .net, vb.net में रिच टेक्स्ट बॉक्स में रंगीन टेक्स्ट

XML पाठ को संपादित करने के लिए मेरे पास रिच टेक्स्टबॉक्स है मैं क्या चाहता हूँ कि रिचटक्स्टबॉक्स के अंदर XML टैग नामों को कैसे रंगा जाए
मुझे लाल या हरे रंग में टैग के नाम चाहिए।
ऐसा करने का कोई तरीका?

उत्तर:

जवाब के लिए 2 № 1

अपने इच्छित regex का उपयोग कर रहा है बाहर काम करते हैं यह पन्ना। एक बार जब आपके पास यह हो तो आप अद्यतन करने के लिए निम्नलिखित विधि जैसी किसी चीज़ का उपयोग कर सकते हैं RichTextBox

public static void HighlightSyntax(RichTextBox richTextBox, Regex yourRegex, Color someColor)
{
richTextBox.BeginUpdate();
int selPos = richTextBox.SelectionStart;
richTextBox.SelectAll();
richTextBox.SelectionColor = normTextColor;
richTextBox.Select(selPos, 0);

// For each match from the regex, highlight the word.
foreach (Match keyWordMatch in yourRegex.Matches(richTextBox.Text))
{
richTextBox.Select(keyWordMatch.Index, keyWordMatch.Length);
richTextBox.SelectionColor = someColor;
richTextBox.Select(selPos, 0);
richTextBox.SelectionColor = normTextColor;
}
richTextBox.EndUpdate();
}

निर्धारित समय के बाद आप इसे अपडेट करने के लिए टाइमर भी अपना सकते हैं।

आशा है कि ये आपकी मदद करेगा।

ध्यान दें। बड़ी पाठ फ़ाइलों के लिए, और इस तरह दृष्टिकोण धीमा हो जाएगा! इस मामले में मैं Sinctilla.NET को एक पूर्ण वाक्यविन्यास हाइलाइटर के रूप में अपनाऊंगा, जैसा कि नीचे दिए गए उत्तर में दिया गया है ...


उत्तर № 2 के लिए 1

ऐसे लेख हैं जो वाक्यविन्यास रंग के संभावित दृष्टिकोणों की व्याख्या या सुझाव देते हैं, उदाहरण के लिए: कैसे WinForms अनुप्रयोग में सिंटैक्स हाइलाइटिंग को लागू करने के लिए

मुझे लगता है कि सबसे अच्छा और आसान तरीका उपयोग करना है Scintilla.NET संभाल करने के लिए ताकि आप ध्यान केंद्रित कर सकें कि पहिया को फिर से मजबूत करने के बजाय आपके लिए वास्तव में क्या मायने रखता है :)


जवाब के लिए 0 № 3

MSDN ने एक सरल C # फ़ंक्शन बनाया जो रिचटक्स्टबॉक्स से पाठ सामग्री को प्रारूपित करता है: संपर्क


जवाब के लिए 0 № 4

एक सरल रीगेक्स का उपयोग करके प्रत्येक टैग का स्थान (आरंभ और अंत) ढूंढें और इसे नीचे की तरह रंग दें:

richtextbox1.Select(start, end-start);

richtextbox1.SelectionColor = Color.Green;

richtextbox1.Select(start, 0);

जवाब के लिए 0 № 5

चेक आउट झलक, विंडोज के लिए एक अच्छा स्रोत कोड संपादन घटक जो सिंटेक्स हाइलाइटिंग का भी समर्थन करता है। और इसके लिए एक .NET रैपर कहा जाता है ScintillaNET.


जवाब के लिए 0 № 6

मुझे लगता है कि छोटे सिंटैक्स हाइलाइटिंग प्रोजेक्ट्स के लिए, अपना खुद का रोल करें! पहले से ही पोस्ट किए गए एक वाक्यविन्यास संपादक में हाइलाइटिंग के कुछ उदाहरण हैं।

https://stackoverflow.com/a/13007641/1033686

https://stackoverflow.com/a/13007710/1033686

बेहतर हाइलाइटिंग की मांग करने वाली बड़ी परियोजनाओं के लिए, Scintilla.NET का उपयोग करें (लेकिन चेतावनी दी जाए, यह थोड़ा भारी है और काम करने के लिए मुश्किल हो सकता है!)।

http://scintillanet.codeplex.com/

एंटरप्राइज़ परियोजनाओं के लिए एक्टिप्रो सिंटैक्स संपादक जैसे वाणिज्यिक उत्पाद का उपयोग करें।

http://www.actiprosoftware.com/products/controls/windowsforms/syntaxeditor?gclid=CI6rrqmglLMCFSfMtAodbE8AhA