2010-05-24 2 views
1

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

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

Thanks

ответ

1

Выполнено.

Scintilla может автоматическую прокрутку по телефону:

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

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

+0

вы также можете использовать SCI_SCROLLARET без аргументов, которые аналогичны приведенным выше, и проверяет также политику каретки. – RaptorX

+0

@RaptorX Какую функцию вы вызываете с помощью опции SCI_SCROLLARET? –

0

Принятое решение не работает для меня, когда вы пытаетесь сделать команду редактора 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); 
Смежные вопросы