How to create an application to highlight all the lines containing a search string using WinForms SyntaxEditor (EditControl)?
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