单击按钮,我试图在活动的Word文档中执行搜索操作。 而且在我的代码中出现错误是
该按钮位于自定义任务窗格上
错误CS1061'UserControl1'不包含'Application'的定义,并且找不到可访问的扩展方法'Application'接受类型为'UserControl1'的第一个参数(您是否缺少using指令或程序集引用?) WordAddIn1 c:\ users \ veroot \ source \ repos \ WordAddIn1 \ WordAddIn1 \ UserControl1.cs 29有效
代码是
private void button1_Click(object sender, EventArgs e)
{
object findText = textBox1.Text;
object missing = System.Type.Missing;
Word.Document document = this.Application.ActiveDocument;
Word.Range rng = document.Range(0, Type.Missing);
rng.Find.Highlight = 0;
rng.Find.Forward = true;
do
{
if (rng.HighlightColorIndex == WdColorIndex.wdYellow)
{
rng.HighlightColorIndex = WdColorIndex.wdRed;
rng.Font.ColorIndex = WdColorIndex.wdBlue;
}
int intPosition = rng.End;
rng.Start = intPosition;
} while (rng.Find.Execute("", missing, missing, missing, missing, missing, true,
missing, missing, missing, missing, missing, missing, missing, missing));
}
答案 0 :(得分:0)
在VSTO解决方案中,只能使用关键字this
来引用ThisAddin
类中的宿主Office应用程序。在所有其他类(包括用于UserControl的类)中,this
将引用该类(UserControl),并且与宿主Office应用程序没有任何关系或连接。因此,对于问题中显示的代码,this
引用UserControl类。
为了引用运行VSTO加载项的Office应用程序,最好使用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;