演练:从自定义任务窗格自动执行应用程序
本演练演示了如何创建实现 PowerPoint 自动化的自定义任务窗格。 当用户单击自定义任务窗格中的 MonthCalendar 控件时,自定义任务窗格向一张幻灯片中插入日期。
适用于: 本主题中的信息适用于 Outlook 的 VSTO 外接程序项目。 有关详细信息,请参阅办公室应用程序和项目类型提供的功能。
虽然本演练具体使用的是 PowerPoint,但其中所阐释的概念同样适用于上面所列的应用程序。
本演练阐释了以下任务:
设计自定义任务窗格的用户界面。
从自定义任务窗格中实现 PowerPoint 自动化。
在 PowerPoint 中显示自定义任务窗格。
注意
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 Visual Studio IDE。
先决条件
你需要满足以下条件才能完成本演练:
Visual Studio 的一个版本,其中包含 Microsoft Office 开发人员工具。 有关详细信息,请参阅配置计算机以开发办公室解决方案。
Microsoft PowerPoint 2010 或 PowerPoint 2013 。
创建外接程序项目
第一步是为 PowerPoint 创建 VSTO 外接程序项目。
创建新项目
使用 PowerPoint 外接程序项目模板创建名为 MyAddIn的 PowerPoint VSTO 外接程序项目。 有关详细信息,请参阅“如何:在 Visual Studio 中创建办公室项目。
Visual Studio 将打开 ThisAddIn.cs 或 ThisAddIn.vb 代码文件,并将 MyAddIn 项目添加到解决方案资源管理器。
设计自定义任务窗格的用户界面
没有针对自定义任务窗格的可视化设计器,但可以设计具有所需布局的用户控件。 稍后在本演练中,你将向自定义任务窗格添加用户控件。
若要设计自定义任务窗格的用户界面
在 “项目” 菜单上,单击 “添加用户控件”。
在“添加新项” 对话框中,将用户控件的名称更改为 MyUserControl,然后单击“添加” 。
用户控件将在设计器中打开。
从“工具箱” 的“公共控件” 选项卡中,将 MonthCalendar 控件拖到用户控件中。
如果 MonthCalendar 控件大于用户控件的设计图面,则调整用户控件的大小以适合 MonthCalendar 控件。
从自定义任务窗格自动执行 PowerPoint
VSTO 外接程序的作用是在活动演示文稿的第一张幻灯片中放置所选日期。 使用控件的 DateChanged 事件以在发生更改时添加所选日期。
若要从自定义任务窗格中实现 PowerPoint 自动化
在设计器中,双击 MonthCalendar 控件。
此时会打开 MyUserControl.cs 或 MyUserControl.vb 文件,并创建 DateChanged 事件的事件处理程序。
在文件顶部添加以下代码。 此代码为 Microsoft.Office.Core PowerPoint 命名空间创建别名。
将以下代码添加到
MyUserControl
类。 此代码将 Shape 对象声明为 . 的MyUserControl
一个成员。 在以下步骤中,你将使用此 形状 向活动演示文稿中的幻灯片添加文本框。将
monthCalendar1_DateChanged
事件处理程序替换为以下代码。 此代码向活动演示文稿的第一张幻灯片中添加文本框,然后向文本框中添加当前选定的日期。 此代码将使用Globals.ThisAddIn
对象来访问 PowerPoint 的对象模型。private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e) { try { if (textbox != null) { textbox.Delete(); } PowerPoint.Slide slide = Globals.ThisAddIn.Application.ActivePresentation.Slides[1]; textbox = slide.Shapes.AddTextbox( Office.MsoTextOrientation.msoTextOrientationHorizontal, 50, 100, 600, 50); textbox.TextFrame.TextRange.Text = e.Start.ToLongDateString(); textbox.TextFrame.TextRange.Font.Size = 48; textbox.TextFrame.TextRange.Font.Color.RGB = Color.DarkViolet.ToArgb(); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } }
在 解决方案资源管理器中,右键单击 MyAddIn 项目,然后单击“生成” 。 验证此项目是否已生成且未发生错误。
显示自定义任务窗格
若要在 VSTO 外接程序启动时显示自定义任务窗格,请将用户控件添加到 VSTO 外接程序的 Startup 事件处理程序中的任务窗格中。
若要显示自定义任务窗格
在 解决方案资源管理器中,展开 PowerPoint。
右键单击 ThisAddIn.cs 或 ThisAddIn.vb ,然后单击“查看代码” 。
将以下代码添加到
ThisAddIn
类。 此代码将MyUserControl
和 CustomTaskPane 的实例声明为ThisAddIn
类的成员。将
ThisAddIn_Startup
事件处理程序替换为以下代码。 此代码通过将 CustomTaskPane 对象添加到MyUserControl
集合来创建新CustomTaskPanes
。 代码还将显示任务窗格。
测试外接程序
运行该项目时,会打开 PowerPoint,VSTO 外接程序将显示自定义任务窗格。 单击 MonthCalendar 控件以测试代码。
测试 VSTO 外接程序
按 F5 运行项目。
确认自定义任务窗格是可见的。
单击任务窗格上 MonthCalendar 控件中的某个日期。
将向活动演示文稿的第一张幻灯片中添加日期。
后续步骤
可从以下主题了解有关如何创建自定义任务窗格的详细信息:
为其他应用程序在 VSTO 外接程序中创建自定义任务窗格。 有关支持自定义任务窗格的应用程序的详细信息,请参阅 自定义任务窗格。
创建一个用于隐藏或显示自定义任务窗格的功能区按钮。 有关详细信息,请参阅 演练:将自定义任务窗格与功能区按钮同步。
为 Outlook 中打开的每封电子邮件创建自定义任务窗格。 有关详细信息,请参阅 演练:在 Outlook 中使用电子邮件显示自定义任务窗格。