internal static void HighLightSearchWords(string sourceString, DrawItemEventArgs e, Point position, string[] highLightWords, Brush highlightBrush) { var wordRangeList = StringUntils.BreakToRanges(sourceString, highLightWords); foreach (var range in wordRangeList) { var stringWidth = CalculateStringWidth(range.Text, e); if (range.IsHighlighted && e.State == DrawItemState.Default) { e.Graphics.FillRectangle(highlightBrush, position.X, position.Y, stringWidth, e.Bounds.Height); } var widthValue = Convert.ToInt32(stringWidth); position.X += widthValue; } }
internal static void DrawStyleSheets(DrawItemEventArgs e, Graphics graphic, Point position, string text, string[] highlightedWords, Size dummySize, Brush brshHighlight) { var wordRanges = StringUntils.BreakToRanges(text, highlightedWords); foreach (var range in wordRanges) { var stringWidth = TextRenderer.MeasureText(graphic, range.Text, e.Font, dummySize, TextFormatFlags.NoPadding).Width; var textColor = e.State == DrawItemState.Selected ? Color.White : Color.Black; if (range.IsHighlighted && e.State == DrawItemState.Default) { graphic.FillRectangle(brshHighlight, position.X, position.Y, stringWidth, e.Bounds.Height); } TextRenderer.DrawText(graphic, range.Text, e.Font, position, textColor, TextFormatFlags.NoPadding); position.X += stringWidth; } }