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