Search code examples
c#.netscintilla

Scintilla .NET editor. Position cursor at the first visible line


I am using the Scintilla .NET text editor control (ScintillaNet.dll) to display SQL. I am using the following command to position the caret cursor at a given line number. In the example below, I am positioning the caret cursor at line 102 (0 based. The grid displays 1-based line numbers.)

scintilla1.GoTo.Line(102); //0 based

What I get

I'd like text in the viewport to be displayed at the top of the screen as shown below, as the first visible line

What I want

How can I identify how to do this?

Update

This looked promising:

scintilla1.Lines.FirstVisible.Number = targetLineNumber;

but after executing, scintilla1.Lines.FirstVisible.Number wasn't always equal to targetLineNumber and I don't know what is interfering with it.There are hundreds of lines following the targetLineNumber line.


Solution

  • Get/Set first visible line works for me https://www.scintilla.org/ScintillaDoc.html#SCI_SETFIRSTVISIBLELINE

    You can keep the cursor position first (SCI_GOTOPOS) and then set the first visible line