Есть ли способ подавить диалоговое окно с вопросом, хотите ли вы сохранить в определенном файле?

#vsix #visual-studio-addins #vsx #vspackage #vs-extensibility

#vsix #visual-studio-addins #vsx #vspackage #vs-расширяемость

Вопрос:

Когда пользователь дважды щелкает элемент в одном из моих файлов, он открывает временный файл для редактирования с помощью DTE. Как только они закончат редактирование этого временного файла, они закрывают его, и он добавляется к родительскому файлу. Это отлично работает.

Моя проблема в том, что когда они идут, чтобы закрыть временный файл, он спрашивает их, хотят ли они сохранить. В этой ситуации правильнее всего нажать нет, иначе он попросит вас сохранить файл как что-то. Есть ли способ изменить это, чтобы он не запрашивал пользователя и всегда просто закрывал файл без его сохранения?

Заранее спасибо.

Ответ №1:

Хотя методы DTE не предоставляют способа сделать это, вместо этого вы можете использовать IVsUIShellOpenDocument, а затем явно добавить флаги RDT_DontSave, RDT_DontSaveAs и, возможно, RDT_DontAddtoMRU через аргумент grfOpenStandard, переданный IVsUIShellOpenDocument .OpenStandardEditor или аналогичный.

В качестве альтернативы вы можете использовать IVsRunningDocumentTable .ModifyDocumentFlags для добавления флагов после факта.

Но для этого вам нужно будет получить файл cookie документа с помощью чего-то вроде IVsRunningDocumentTable2.FindAndLockDocumentEx.