Scintilla .NET 编辑器。将光标定位在第一条可见行

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

我正在使用 Scintilla .NET 文本编辑器控件 (ScintillaNet.dll) 来显示 SQL。我正在使用以下命令将插入符号光标定位在给定的行号处。在下面的示例中,我将插入符号光标定位在第 102 行(基于 0。网格显示基于 1 的行号。)

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

我希望视口中的文本显示在屏幕顶部,如下所示,作为第一条可见行

我如何确定如何执行此操作?

更新

这看起来很有希望:

scintilla1.Lines.FirstVisible.Number = targetLineNumber;

但是在执行之后,scintilla1.Lines.FirstVisible.Number 并不总是等于 targetLineNumber 而且我不知道是什么在干扰 it.There 是 [=13= 之后的数百行]行。

Get/Set 第一个可见行适合我 https://www.scintilla.org/ScintillaDoc.html#SCI_SETFIRSTVISIBLELINE

可以先保持光标位置(SCI_GOTOPOS)再设置第一条可见行