Category / Section
How to create an application to highlight all the lines containing a search string using WinForms SyntaxEditor (EditControl)?
1 min read
Highlight the search text
You could iterate through every line in the EditControl and highlight each line with the search string as shown in the code below.
C#
searchStr = this.textBox1.Text; IBackgroundFormat format = this.editControl1.RegisterBackColorFormat(ColorTranslator.FromHtml("#FFBF34"), Color.Transparent); int currentLine = 0; for (int i=1; i<=this.editControl1.PhysicalLineCount; i++) { ILexemLine line = this.editControl1.GetLine(i); foreach (ILexem lexem in line.LineLexems) { if (lexem.Text == searchStr) { if ((i != currentLine) || (i==0)) this.editControl1.SetLineBackColor(i, true, format); currentLine = i; } } }
VB
searchStr = Me.textBox1.Text Dim format As IBackgroundFormat = Me.editControl1.RegisterBackColorFormat(ColorTranslator.FromHtml("#FFBF34"), Color.Transparent) Dim currentLine As Integer = 0 Dim i As Integer For i = 1 To Me.editControl1.PhysicalLineCount Dim line As ILexemLine = Me.editControl1.GetLine(i) Dim lexem As ILexem For Each lexem In line.LineLexems If lexem.Text = searchStr Then If i <> currentLine OrElse i = 0 Then Me.editControl1.SetLineBackColor(i, True, format) End If currentLine = i End If Next lexem Next i
Reference link: https://help.syncfusion.com/windowsforms/syntax-editor/text-visualization#line-backcolor