2013-11-06 1 views
0

Как я могу получить первый видимый (верхний) и последний видимый (нижний) номер строки для компонента Scintilla на C#? Например, если я прокручиваю текст, и я могу видеть строки 5-41 (без складывания, это количество строк, которое показывается компонентом в данный момент, а остальное - вам нужно прокручивать их), как я получаю эти числа программно?Получить видимые строки в компоненте Scintilla.NET

ответ

2

Если вы когда-нибудь захотите узнать, как это сделать с помощью Scintilla, ваша первая остановка всегда должна быть ядром Scintilla Documentation. Он является всеобъемлющим и, как правило, полностью обновляется.

Правильный способ сделать то, что вы хотите, это использовать сообщение SCI_GETFIRSTVISIBLELINE, чтобы получить первую строку, а затем использовать сообщение SCI_LINESONSCREEN для расчета последней строки.

Возможно, существуют методы обертки Scintilla.NET для этих сообщений. Но Scintilla.NET documentation кажется очень плохим и не дает полного описания его API - хотя, я полагаю, вы всегда можете использовать метод SendMessageDirect (который - это) для отправки сообщений напрямую, если вы не можете догадаться, что такое обертка метод.

+0

Спасибо, я, наконец, сделал это работать с предлагаемым ответом. Большое спасибо человеку! –

1

Для ScintillaNET 2 было бы:

scintilla.Lines.FirstVisibleIndex 
scintilla.Lines.VisibleCount 

В ScintillaNET 3 названия было переработано, чтобы больше походить на основном Scintilla:

scintilla.FirstVisibleLine 
scintilla.LinesOnScreen