在Visual Studio中获取当前文档视口

时间:2015-09-30 15:12:38

标签: c# envdte vspackage vs-extensibility

我正在写 VSPackage 。我需要从 Visual Studio 中的当前文档中获取文本,编辑文本并将其写回当前打开的文档。

当我这样做时,文档的当前视口会跳回到文档的顶部:

示例让我们假设您正在处理包含2000行代码的文档,并且当前在 Visual Studio 代码编辑器中,您会看到第500到550行。光标位于第700行。

处理完文档文本后,我希望用户在代码编辑器中看到相同的行号,并且我希望光标保持原样。

我找到了一些移动光标的解决方案,但仍然无法找到活动文档中当前视图端口的GetSet

enter image description here

1 个答案:

答案 0 :(得分:1)

https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.text.editor.iviewscroller(v=vs.120).aspx

使用IViewScroller。它有方法在视图中保持所需的跨度,这很可能是您想要的,或者按指定的行数滚动。只需使用文本视图对象的ViewScroller属性获取其实例。