Как показать / активировать текстовый курсор в открытом документе? [C #, EnvDTE] - PullRequest
1 голос
/ 04 июля 2019

Я пытаюсь установить курсор в открытом документе, но он не отображается.Я вижу, что строка «помечена», и я могу «перемещаться» по линиям, но курсор не отображается, и поэтому я не могу ничего писать.Также кажется, что документ на самом деле не загружается полностью, так как руководство и навигационная карта тоже не отображаются. Что заставляет меня поверить, что фокус не полностью установлен внутри документа. Я подтвердил, что фокус действительно не установлен в документе в окне, так как если у меня есть окно вывода, ранее оно фокусируется после вызова метода window.Activate().

Я использовалобщий способ открытия документа через ProjectItem.Open(Constants.vsViewKindCode), его активации и использования метода TextSelection.GotoLine(1,false).

Это правильно показывает документ и правильно устанавливает строку, но я должен вручную щелкнуть внутри документа дляпоявится курсор.

Код, который у меня есть:

Window window = projItem.Open(Constants.vsViewKindCode);
window.Activate(); <----- this does not focus the window.
TextSelection textSelection = window.Document.Selection as TextSelection;
textSelection.GotoLine(1, false);

Мне не нужно вручную нажимать внутри документа, чтобы он полностью загрузился, и чтобы я мог писать вэто.

Надеюсь, кто-нибудь может мне помочь.

1 Ответ

0 голосов
/ 10 июля 2019

Ну, еще одна проблема, которую мне пришлось решить самому ... Два на двоих. Я думаю, что люди не знают так много здесь, как я надеялся. Ну хорошо.

В любом случае, я обнаружил, что если вы используете DTE.ItemOperations.OpenFile(path); и ничего больше, файл получит фокус правильно, как и при использовании .Activate().

...