Как я могу получить первый видимый (верхний) и последний видимый (нижний) номер строки для компонента Scintilla на C#? Например, если я прокручиваю текст, и я могу видеть строки 5-41 (без складывания, это количество строк, которое показывается компонентом в данный момент, а остальное - вам нужно прокручивать их), как я получаю эти числа программно?Получить видимые строки в компоненте Scintilla.NET
ответ
Если вы когда-нибудь захотите узнать, как это сделать с помощью Scintilla, ваша первая остановка всегда должна быть ядром Scintilla Documentation. Он является всеобъемлющим и, как правило, полностью обновляется.
Правильный способ сделать то, что вы хотите, это использовать сообщение SCI_GETFIRSTVISIBLELINE, чтобы получить первую строку, а затем использовать сообщение SCI_LINESONSCREEN для расчета последней строки.
Возможно, существуют методы обертки Scintilla.NET для этих сообщений. Но Scintilla.NET documentation кажется очень плохим и не дает полного описания его API - хотя, я полагаю, вы всегда можете использовать метод SendMessageDirect
(который - это) для отправки сообщений напрямую, если вы не можете догадаться, что такое обертка метод.
Для ScintillaNET 2 было бы:
scintilla.Lines.FirstVisibleIndex
scintilla.Lines.VisibleCount
В ScintillaNET 3 названия было переработано, чтобы больше походить на основном Scintilla:
scintilla.FirstVisibleLine
scintilla.LinesOnScreen
Спасибо, я, наконец, сделал это работать с предлагаемым ответом. Большое спасибо человеку! –