在Scintilla.NET组件中获取可见行

时间:2013-11-06 16:19:22

标签: c# api scintilla

如何在C#中获取Scintilla组件的第一个可见(顶部)和最后一个可见(底部)行号?例如,如果我滚动文本,我能够看到第5-41行(没有折叠,它是当前组件显示的行数;其余的,你必须滚动到它们),如何以编程方式获取这些数字吗?

2 个答案:

答案 0 :(得分:2)

如果你想知道如何用Scintilla做些什么,你的第一站应该始终是核心Scintilla Documentation。它是全面的,通常保持最新状态。

执行所需操作的正确方法是使用SCI_GETFIRSTVISIBLELINE消息获取第一行,然后使用SCI_LINESONSCREEN消息计算最后一行。

这些消息可能有Scintilla.NET包装器方法。但是Scintilla.NET documentation似乎很差,并没有提供其API的完整描述 - 尽管我认为你总是可以使用SendMessageDirect方法( 记录)来如果您无法猜测调用包装器方法的内容,请直接发送消息。

答案 1 :(得分:1)

对于ScintillaNET 2,它将是:

scintilla.Lines.FirstVisibleIndex
scintilla.Lines.VisibleCount

在ScintillaNET 3中,名称被重构为更像核心scintilla:

scintilla.FirstVisibleLine
scintilla.LinesOnScreen