Можно ли сделать один 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/
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости