0

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

4

2 回答 2

3

如果您想了解如何使用 Scintilla 做某事,您的第一站应该始终是核心Scintilla 文档。它是全面的,通常保持最新。

正确的做法是使用SCI_GETFIRSTVISIBLELINE消息获取第一行,然后使用SCI_LINESONSCREEN消息计算最后一行。

这些消息可能有 Scintilla.NET 包装器方法。但是Scintilla.NET 文档似乎很差,并且没有提供其 API 的完整描述 - 尽管我想如果您无法猜测包装器是什么,我想您总是可以使用该SendMessageDirect方法(记录)直接发送消息方法被调用。

于 2013-11-06T20:03:22.087 回答
1

对于 ScintillaNET 2,它将是:

scintilla.Lines.FirstVisibleIndex
scintilla.Lines.VisibleCount

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

scintilla.FirstVisibleLine
scintilla.LinesOnScreen
于 2015-08-22T16:34:05.557 回答