操作指南:从自定义任务窗格自动化应用程序

本演练演示如何创建自定义任务窗格来自动执行 PowerPoint。 当用户单击 MonthCalendar 自定义任务窗格上的控件时,自定义任务窗格将日期插入幻灯片。

适用于: 本主题中的信息适用于 Outlook 的 VSTO 外接程序项目。 有关详细信息,请参阅 Office 应用程序和项目类型提供的功能

尽管本演练专门使用 PowerPoint,但本演练演示的概念适用于上面列出的任何应用程序。

本演练阐释了以下任务:

  • 设计自定义任务窗格的用户界面。

  • 使用自定义任务窗格自动化 PowerPoint。

  • 在 PowerPoint 中显示自定义任务窗格。

注释

以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 这些元素取决于你所使用的 Visual Studio 版本和你所使用的设置。 有关详细信息,请参阅个性化设置 Visual Studio IDE

先决条件

你需要满足以下条件才能完成本演练:

创建插件项目

第一步是为 PowerPoint 创建 VSTO 外接程序项目。

创建新项目

  1. 使用 PowerPoint 外接程序项目模板创建名为 MyAddIn 的 PowerPoint VSTO 外接程序项目。 有关详细信息,请参阅 如何:在 Visual Studio 中创建 Office 项目

    Visual Studio 将打开 ThisAddIn.csThisAddIn.vb 代码文件,并将 MyAddIn 项目添加到 解决方案资源管理器

设计自定义任务窗格的用户界面

没有自定义任务窗格的可视化设计器,但你可以使用所需的布局设计用户控件。 在本演练的后面部分,你将将用户控件添加到自定义任务窗格。

设计自定义任务窗格的用户界面

  1. “项目 ”菜单上,单击“ 添加用户控件”。

  2. 在“ 添加新项 ”对话框中,将用户控件的名称更改为 MyUserControl,然后单击“ 添加”。

    用户控件将在设计器中打开。

  3. 工具箱“常见控件”选项卡中,将 MonthCalendar 控件拖到用户控件。

    如果 MonthCalendar 控件大于用户控件的设计图面,请调整用户控件的大小以适应 MonthCalendar 控件。

从自定义任务窗格自动执行 PowerPoint

VSTO 外接程序的目的是在当前演示文稿的第一张幻灯片上放置所选日期。 使用控件的DateChanged事件,在控件每次更改时添加所选日期。

从自定义任务窗格自动执行 PowerPoint

  1. 在设计器中,双击控件 MonthCalendar

    MyUserControl.csMyUserControl.vb文件将被打开,并为DateChanged事件创建事件处理程序。

  2. 将以下代码添加到文件顶部。 此代码为 Microsoft.Office.CorePowerPoint 命名空间创建别名。

    using Office = Microsoft.Office.Core;
    using PowerPoint = Microsoft.Office.Interop.PowerPoint;
    
  3. 将以下代码添加到 MyUserControl 类。 此代码将 Shape 对象声明为 . 的 MyUserControl一个成员。 在以下步骤中,你将使用此 形状 向活动演示文稿中的幻灯片添加文本框。

    private PowerPoint.Shape textbox;
    
  4. 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());
        }
    }
    
  5. 解决方案资源管理器中,右键单击 MyAddIn 项目,然后单击“ 生成”。 验证项目生成时是否没有错误。

显示自定义任务窗格

若要在 VSTO 外接程序启动时显示自定义任务窗格,请在 VSTO 外接程序的事件处理程序中 Startup 将用户控件添加到任务窗格。

显示自定义任务窗格

  1. 解决方案资源管理器 中,展开 PowerPoint

  2. 右键单击 ThisAddIn.csThisAddIn.vb ,然后单击“ 查看代码”。

  3. 将以下代码添加到 ThisAddIn 类。 声明 ThisAddIn 类中的 MyUserControlCustomTaskPane 实例。

    private MyUserControl myUserControl1;
    private Microsoft.Office.Tools.CustomTaskPane myCustomTaskPane;
    
  4. ThisAddIn_Startup 事件处理程序替换为以下代码。 此代码通过将MyUserControl对象添加到CustomTaskPanes集合中来创建一个新的CustomTaskPane。 该代码还显示任务窗格。

    private void ThisAddIn_Startup(object sender, System.EventArgs e)
    {
        myUserControl1 = new MyUserControl();
        myCustomTaskPane = this.CustomTaskPanes.Add(myUserControl1, "Calendar");
        myCustomTaskPane.Visible = true;
    }
    

测试外接程序

运行项目时,PowerPoint 将打开,VSTO 外接程序将显示自定义任务窗格。 MonthCalendar单击控件以测试代码。

测试 VSTO 外接程序

  1. F5 运行项目。

  2. 确认自定义任务窗格可见。

  3. 单击任务窗格上的控件中的 MonthCalendar 日期。

    日期插入到活动演示文稿的第一张幻灯片中。

后续步骤

可以详细了解如何从以下主题创建自定义任务窗格: