在运行时访问窗体区域
更新:2007 年 11 月
适用对象 |
---|
本主题中的信息仅适用于指定的 Visual Studio Tools for Office 项目和 Microsoft Office 版本。 项目类型
Microsoft Office 版本
有关更多信息,请参见按应用程序和项目类型提供的功能。 |
可以编写代码来显示、隐藏或修改窗体区域中的控件,并使用户能通过使用 Globals 类从项目中的其他区域运行代码。
有关 Globals 类的更多信息,请参见 对 Visual Studio Tools for Office 项目中的对象的全局访问。
使用 Globals 类可以从项目中的任何位置访问在检查器和资源管理器中显示的窗体区域。检查器是在用户执行特定任务(如创建电子邮件)时在 Outlook 中打开的窗口。资源管理器是显示包含项(如电子邮件、任务或约会)的文件夹内容的窗口。
访问在特定 Outlook 检查器窗口中显示的窗体区域
若要访问在特定 Outlook 检查器中显示的所有窗体区域,请调用 Globals 类的 FormRegions 属性,并传入一个表示该检查器的 Inspector 对象。
下面的示例获取在当前获得焦点的检查器中显示的窗体区域的集合。然后,此示例访问名为 formRegion1 的集合中的窗体区域,并将显示在文本框中的文本设置为 Hello World。
Private Sub Access_Form_Regions_ByInspector()
Dim formRegions As WindowFormRegionCollection = Globals.FormRegions _
(Globals.ThisAddIn.Application.ActiveInspector())
formRegions.FormRegion1.textBox1.Text = "Hello World"
End Sub
private void Access_Form_Regions_ByInspector()
{
WindowFormRegionCollection formRegions =
Globals.FormRegions
[Globals.ThisAddIn.Application.ActiveInspector()];
formRegions.FormRegion1.textBox1.Text = "Hello World";
}
访问在特定 Outlook 资源管理器窗口中显示的窗体区域
若要访问在特定 Outlook 资源管理器中显示的所有窗体区域,请调用 Globals 类的 FormRegions 属性,并传入一个表示该资源管理器的 Explorer 对象。
下面的示例获取在当前获得焦点的资源管理器中显示的窗体区域的集合。然后,此示例访问名为 formRegion1 的集合中的窗体区域,并将显示在文本框中的文本设置为 Hello World。
Private Sub Access_Form_Regions_ByExplorer()
Dim formRegions As WindowFormRegionCollection = Globals.FormRegions _
(Globals.ThisAddIn.Application.ActiveExplorer())
formRegions.FormRegion1.textBox1.Text = "Hello World"
End Sub
private void Access_Form_Regions_ByExplorer()
{
WindowFormRegionCollection formRegions =
Globals.FormRegions
[Globals.ThisAddIn.Application.ActiveExplorer()];
formRegions.FormRegion1.textBox1.Text = "Hello World";
}
访问所有窗体区域
若要访问在所有资源管理器和所有检查器中显示的所有窗体区域,请调用 Globals 类的 FormRegions 属性。
下面的示例获取在所有资源管理器和所有检查器中显示的窗体区域的集合。然后,此示例访问名为 formRegion1 的窗体区域,并将显示在文本框中的文本设置为 Hello World。
Friend Sub Access_All_Form_Regions()
Dim formRegion As Microsoft.Office.Tools.Outlook.IFormRegion
For Each formRegion In Globals.FormRegions
If TypeOf formRegion Is FormRegion1 Then
Dim formRegion1 As FormRegion1 = _
CType(formRegion, FormRegion1)
formRegion1.textBox1.Text = "Hello World"
End If
Next formRegion
End Sub
internal void Access_All_Form_Regions()
{
foreach (Microsoft.Office.Tools.Outlook.IFormRegion formRegion
in Globals.FormRegions)
{
if (formRegion is FormRegion1)
{
FormRegion1 formRegion1 = (FormRegion1)formRegion;
formRegion1.textBox1.Text = "Hello World";
}
}
}
访问窗体区域中的控件
若要使用 Globals 类来访问窗体区域中的控件,必须使窗体区域代码文件外部的代码可以访问控件。
在窗体区域设计器中设计的窗体区域
对于 C#,更改要访问的每个控件的修饰符。若要执行此操作,请在窗体区域设计器中选择每个控件,然后在“属性”窗口将“Modifiers”属性更改为“Internal”或“public”。例如,如果将 textBox1 的“Modifiers”属性更改为“Internal”,则可以通过键入 Globals.FormRegions.FormRegion1.textBox1 来访问 textBox1。
对于 Visual Basic,不需要更改修饰符。
导入的窗体区域
如果导入在 Outlook 中设计的窗体区域,则窗体区域中每个控件的访问修饰符变为私有。因为无法使用窗体区域设计器来修改导入的窗体区域,所以无法在“属性”窗口更改控件的修饰符。
若要能够从窗体区域代码文件外部访问控件,请在窗体区域代码文件中创建属性来返回该控件。
有关如何在 C# 中创建属性的更多信息,请参见如何:声明和使用读/写属性(C# 编程指南)。
有关如何在 Visual Basic 中创建属性的更多信息,请参见如何:向类添加字段和属性。