richTextBox1.SelectionStart = richTextBox1.TextLength;
richTextBox1.SelectionLength = 0;
richTextBox1.SelectedText = your_text_here;
richTextBox1.ScrollToCaret();
Синхронизировать два richTextBox (C#)
Еще одна деталь: в одном тексте мб 20 строк, а во втором 50. Значит, когда прокручивается текст во втором richTextBox, в первом тоже должны появится полосы прокрути, и текст должен "уехать" вверх, т.к. этих последних 30 строк нет.
Я новичек в C#, так что прошу объяснить популярно :) как все это можно сделать. А еще лучше сразу посмотреть на код.
решение.
никаких комментариев, кому надо - разберутся
[DllImport("user32.dll")]
private static extern int GetScrollPos(IntPtr hwnd, int nBar);
[DllImport("user32.dll", EntryPoint = "PostMessageA")]
private static extern int PostMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
int ScrollObj = 3;
private void richTextBoxA_VScroll(object sender, EventArgs e)
{
...
if (ScrollObj != 2)
{
ScrollObj = 1;
SyncObj(richTextBoxA, richTextBoxB, 1);
}
}
аналогично richTextBoxB_VScroll
private void SyncObj(RichTextBox Box1, RichTextBox Box2, int source)
{
if (source == 1)
{
source = GetScrollPos(Box1.Handle, 1);
PostMessage(Box2.Handle, 0x115, 4 + 0x10000 * source, 0);
}
if (source == 2)
{
source = GetScrollPos(Box2.Handle, 1);
PostMessage(Box1.Handle, 0x115, 4 + 0x10000 * source, 0);
}
}
private void richTextBoxA_MouseCaptureChanged(object sender, EventArgs e)
{
ScrollObj = 1;
}
правда этот код немного недоделан, но все же...
Цитата: ajaccio
На форме есть 2 richTextBox. Требуется сделать так, чтобы при прокрутке текста в одном richTextBox, во втором richTextBox также прокручивался текст и полосы прокрутки. Примерно как в программе WinMerge.
Еще одна деталь: в одном тексте мб 20 строк, а во втором 50. Значит, когда прокручивается текст во втором richTextBox, в первом тоже должны появится полосы прокрути, и текст должен "уехать" вверх, т.к. этих последних 30 строк нет.
Я новичек в C#, так что прошу объяснить популярно :) как все это можно сделать. А еще лучше сразу посмотреть на код.
Еще одна деталь: в одном тексте мб 20 строк, а во втором 50. Значит, когда прокручивается текст во втором richTextBox, в первом тоже должны появится полосы прокрути, и текст должен "уехать" вверх, т.к. этих последних 30 строк нет.
Я новичек в C#, так что прошу объяснить популярно :) как все это можно сделать. А еще лучше сразу посмотреть на код.
У меня подобный вопрос... Только я пишу на VB .Net. У меня есть текстовое поле, в котором моя программа ведет лог и мне необходимо сделать автопрокрутку....Как бы программа залогила одну строчку и поле прокрутилось на конец
Цитата: NextTime
У меня есть текстовое поле, в котором моя программа ведет лог и мне необходимо сделать автопрокрутку....Как бы программа залогила одну строчку и поле прокрутилось на конец
Код: