Можно ли сделать один ScrollBar
, который будет прокручивать два RichTextBox
? RichTextBox1
- это сам текст, а RichTextBox2
пометки/комментарии к выбранной строке в RichTextBox1
.
Создайте класс SynchronizedScrollRichTextBox
, который наследуется от RichTextBox
и переопределите метод WndProc
:
public class SynchronizedScrollRichTextBox : System.Windows.Forms.RichTextBox
{
public event vScrollEventHandler vScroll;
public delegate void vScrollEventHandler(System.Windows.Forms.Message message);
public const int WM_VSCROLL = 0x115;
protected override void WndProc(ref System.Windows.Forms.Message msg)
{
if (msg.Msg == WM_VSCROLL)
{
if (vScroll != null)
{
vScroll(msg);
}
}
base.WndProc(ref msg);
}
public void PubWndProc(ref System.Windows.Forms.Message msg)
{
base.WndProc(ref msg);
}
}
Дальше измените в дизайнере формы тип своих richTextBox
на SynchronizedScrollRichTextBox
.
В объявлении:
private SynchronizedScrollRichTextBox richTextBox1;
private SynchronizedScrollRichTextBox richTextBox2;
В инициализации:
private void InitializeComponent()
{
...
this.richTextBox1 = new SynchronizedScrollRichTextBox();
this.richTextBox2 = new SynchronizedScrollRichTextBox();
...
}
и в созданном событии vScroll
добавьте:
private void richTextBox1_vScroll(Message message)
{
message.HWnd = richTextBox2.Handle;
richTextBox2.PubWndProc(ref message);
}
Оригинал: https://www.codeproject.com/tips/199253/WebControls/
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Стоит задача: определить из браузера, установлен ли у пользователя криптопровайдеры КриптоПРО CSP или VipNet CSP
Изучаю pixijs, не могу понять, почему это не работает
Переменная из php передает "8187 \r\n"Как в js обрезать - пробел\r\n, чтобы было "8187"; ?