Выделение текста, сказанное кем-то, может на мгновение появиться.
В Windows Forms applications
нет других решений для этой проблемы, но сегодня я нашел плохой, рабочий, способ решения: вы можете поставить PictureBox
в перекрытии на RichtextBox
со скриншотом if, во время выбора и изменение цвета или шрифта, внесение его после повторного появления всех, когда операция завершена.
Код здесь ...
//The PictureBox has to be invisible before this, at creation
//tb variable is your RichTextBox
//inputPreview variable is your PictureBox
using (Graphics g = inputPreview.CreateGraphics())
{
Point loc = tb.PointToScreen(new Point(0, 0));
g.CopyFromScreen(loc, loc, tb.Size);
Point pt = tb.GetPositionFromCharIndex(tb.TextLength);
g.FillRectangle(new SolidBrush(Color.Red), new Rectangle(pt.X, 0, 100, tb.Height));
}
inputPreview.Invalidate();
inputPreview.Show();
//Your code here (example: tb.Select(...); tb.SelectionColor = ...;)
inputPreview.Hide();
Лучше использовать WPF; это решение не идеально, но для Winform оно работает.