对 Office 项目中对象的全局访问
更新:2010 年 5 月
创建 Office 项目时,Visual Studio 会自动在项目中生成名为 Globals 的类。 您可以使用 Globals 类在运行时从项目内的任何代码中访问若干不同的项目项。
**适用于:**本主题中的信息适用于 Microsoft Office 2010 和 2007 Microsoft Office system 的文档级项目和应用程序级项目。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
如何使用 Globals 类
Globals 是一个静态类,它会保持对项目内某些项的引用。 通过使用 Globals 类,可在运行时从项目内的任何代码中访问下列项:
Excel 工作簿或模板项目中的 ThisWorkbook 和 Sheetn 类。 可以使用 Globals.ThisWorkbook 和 Sheetn 属性访问这些对象。
Word 文档或模板项目中的 ThisDocument 类。 可以使用 Globals.ThisDocument 属性访问此对象。
应用程序级项目中的 ThisAddIn 类。 可以使用 Globals.ThisAddIn 属性访问此对象。
使用功能区设计器自定义的项目中的所有功能区。 可以使用 Globals.Ribbons 属性访问功能区。 有关更多信息,请参见在运行时访问功能区。
Outlook 外接程序项目中的所有 Outlook 窗体区域。 可以使用 Globals.FormRegions 属性访问窗体区域。 有关更多信息,请参见在运行时访问窗体区域。
面向 .NET Framework 4 的项目中的工厂对象,可用于在运行时创建功能区控件、智能标记和宿主项。 可以使用 Globals.Factory 属性访问此对象。 此对象是一个类的实例,实现以下接口之一:
提示
在 Excel 2010 和 Word 2010 中已弃用智能标记。 有关更多信息,请参见智能标记概述。
提示
Factory 属性只可用于针对 .NET Framework 4 的项目。 面向 .NET Framework 3.5 的项目在运行时使用其他方法来创建功能区控件、智能标记和宿主项。
例如,当用户单击 Excel 文档级项目中操作窗格上的按钮时,您可以使用 Globals.Sheet1 属性将文本插入到 Sheet1 上的 NamedRange 控件。
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles Button1.Click
Globals.Sheet1.NamedRange1.Value2 = Me.TextBox1.Text
End Sub
private void button1_Click(object sender, EventArgs e)
{
Globals.Sheet1.namedRange1.Value2 = this.textBox1.Text;
}
初始化 Globals 类
尝试在文档或外接程序完全初始化之前使用 Globals 类的代码可能会引发运行时异常。 例如,在声明类级变量时使用 Globals 可能会失败,因为在所声明的对象实例化之前 Globals 类可能没有使用对所有宿主项的引用进行初始化。
提示
Globals 类从不会在设计时初始化,但是控件实例是由设计器创建的。 这意味着如果从用户控件类内创建使用 Globals 类的属性的用户控件,则必须先检查该属性是否返回 null,然后再尝试使用返回的对象。
请参见
概念
修订记录
日期 |
修订记录 |
原因 |
---|---|---|
2010 年 5 月 |
阐明了某些详细信息。 |
信息补充。 |