В решении VSTO можно использовать только ключевое слово this
для ссылки на хост-приложение Office внутри класса ThisAddin
.Во всех других классах, включая класс для UserControl, this
будет ссылаться на этот класс (UserControl) и не будет иметь никакого отношения к приложению хоста Office или к нему.Таким образом, в случае кода, показанного в вопросе, this
относится к классу UserControl.
Для ссылки на приложение Office, в котором запущена надстройка VSTO, лучше всего использовать Globals
ключевое слово.Например,
Word.Document doc = Globals.ThisAddIn.Application.ActiveDocument;
или
Word.Document doc = Globals.ThisAddIn.app.ActiveDocument;
, где app
- это поле уровня класса в классе ThisAddin
- пример объявления:
public partial class ThisAddIn
{
public Word.Application app;
который назначен в ThisAddin_Startup
- например:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
app = this.Application;