У меня есть простое приложение VB.NET, использующее Scintilla. Я не знаю, как я могу сделать автоматическую прокрутку, когда текст добавляется к ней.Как сделать autoscroll в Сцинтилле?
Может ли кто-нибудь помочь?
Thanks
У меня есть простое приложение VB.NET, использующее Scintilla. Я не знаю, как я могу сделать автоматическую прокрутку, когда текст добавляется к ней.Как сделать autoscroll в Сцинтилле?
Может ли кто-нибудь помочь?
Thanks
Выполнено.
Scintilla может автоматическую прокрутку по телефону:
Scintilla1.Scrolling.ScrollBy(0, Scintilla1.Lines.Count)
так она прокручивается до последней строки текста.
Принятое решение не работает для меня, когда вы пытаетесь сделать команду редактора 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);
вы также можете использовать SCI_SCROLLARET без аргументов, которые аналогичны приведенным выше, и проверяет также политику каретки. – RaptorX
@RaptorX Какую функцию вы вызываете с помощью опции SCI_SCROLLARET? –