Как сделать автопрокрутку в Scintilla? - PullRequest
1 голос
/ 24 мая 2010

У меня есть простое приложение VB.NET, использующее Scintilla.Я не знаю, как сделать автоматическую прокрутку элемента управления при добавлении в него текста.

Может ли кто-нибудь помочь?

Спасибо

Ответы [ 2 ]

1 голос
/ 17 июня 2010

Готово.

Scintilla может автоматически прокручиваться, вызывая:

Scintilla1.Scrolling.ScrollBy(0, Scintilla1.Lines.Count)

, поэтому он прокручивается до последней текстовой строки.

0 голосов
/ 16 октября 2015

Принятое решение не сработало, когда я пытался заставить прокрутку редактора ScintillaNET прокручивать нижнюю строку после обновления свойства Text. Возможно, это потому, что я встраиваю его в WPF WindowsFormsHost. В любом случае, вот код, который я использовал, чтобы заставить редактор ScintillaNET управлять автопрокруткой в ​​моем контексте. (Обратите внимание, код находится на C #):

// Declaration for the WinAPI SendMessage() method.
[DllImport("user32.dll")]
public static extern IntPtr SendMessage(IntPtr hWnd, uint wMsg, UIntPtr wParam, IntPtr lParam);

/// WM_VSCROLL -> 0x0115
public const int WM_VSCROLL = 277;

/// SB_BOTTOM -> 7
public const int SB_BOTTOM = 7;

// scintillaCtl should be a reference to the Scintilla control you want to scroll vertically.
SendMessage(scintillaCtl.Handle, WM_VSCROLL, new UIntPtr(SB_BOTTOM), IntPtr.Zero);
...