演练:使用功能区设计器创建自定义选项卡
更新:2010 年 9 月
此演练演示如何使用功能区设计器创建自定义功能区选项卡。 使用功能区设计器可以在自定义选项卡上添加和放置控件。
**适用于:**本主题中的信息适用于以下应用程序的文档级项目和应用程序级项目:Excel 2007 和 Excel 2010;InfoPath 2010;Outlook 2007 和 Outlook 2010;PowerPoint 2007 和 PowerPoint 2010;Project 2010;Visio 2010;Word 2007 和 Word 2010。有关更多信息,请参见按 Office 应用程序和项目类型提供的功能。
本演练阐释了以下任务:
创建操作窗格。
创建自定义选项卡。
使用自定义选项卡上的按钮隐藏和显示操作窗格。
提示
以下说明中的某些 Visual Studio 用户界面元素在计算机上出现的名称或位置可能会不同。 您安装的 Visual Studio 版本以及使用的设置决定了这些元素。 有关更多信息,请参见 使用设置。
系统必备
您需要以下组件来完成本演练:
-
Visual Studio 2010 的一个版本,其中包含 Microsoft Office 开发工具。有关更多信息,请参见[将计算机配置为开发 Office 解决方案](bb398242\(v=vs.100\).md)。
- Microsoft Office Excel 2007 或 Excel 2010。
有关本主题的视频版本,请参见 Video How to: Creating a Custom Tab by Using the Ribbon Designer(视频帮助主题:使用功能区设计器创建自定义选项卡)。 有关相关视频演示,请参见 How Do I: Use the Ribbon Designer to Customize the Ribbon in Excel?(如何实现:使用功能区设计器在 Excel 中自定义功能区?)
创建 Excel 工作簿项目
使用功能区设计器的步骤对于所有 Office 应用程序几乎是相同的。 本示例使用一个 Excel 工作簿。
创建 Excel 工作簿项目
创建一个名为“MyExcelRibbon”的 Excel 工作簿项目。 有关更多信息,请参见如何:在 Visual Studio 中创建 Office 项目。
Visual Studio 将在设计器中打开新的工作簿,并将**“我的 Excel 功能区”项目添加到“解决方案资源管理器”**。
创建操作窗格
将两个自定义操作窗格添加到项目。 稍后会将显示和隐藏这些操作窗格的按钮添加到自定义选项卡。
创建操作窗格
在**“项目”菜单上,单击“添加新项”**。
在**“添加新项”对话框中,选择“ActionsPaneControl”,然后单击“添加”**。
将在设计器中打开 ActionsPaneControl1.cs 或 ActionsPaneControl1.vb 文件。
在**“工具箱”的“公共控件”**选项卡中,将一个标签添加到设计器图面。
在**“属性”窗口中,将 label1 的“Text”**属性设置为“操作窗格 1”。
重复步骤 1 至 5,再创建一个操作窗格和标签。 将第二个标签的**“Text”**属性设置为“操作窗格 2”。
创建自定义选项卡
Office 应用程序的设计准则之一是:用户应始终能控制 Office 应用程序 UI。 若要为操作窗格添加此功能,可以添加用于从功能区上的自定义选项卡显示和隐藏每个操作窗格的按钮。 若要创建自定义选项卡,请将**“功能区(可视化设计器)”**项添加到项目。 设计器可帮助您添加和放置控件、设置控件属性以及处理控件事件。
创建自定义选项卡
在**“项目”菜单上,单击“添加新项”**。
在**“添加新项”对话框中,选择“功能区(可视化设计器)”**。
将新功能区更名为 MyRibbon,然后单击**“添加”**。
MyRibbon.cs 或 MyRibbon.vb 文件将在功能区设计器中打开,并显示一个默认选项卡和组。
在功能区设计器中,单击默认选项卡。
在**“属性”窗口中,展开“ControlId”属性,然后将“ControlIdType”属性设置为“自定义”**。
将**“ControlId”**属性设置为“我的自定义选项卡”。
在功能区设计器中,单击**“group1”**。
在**“属性”窗口中,将“Label”**设置为“操作窗格管理器”。
从**“工具箱”的“Office 功能区控件”选项卡中,将一个按钮拖到“group1”**上。
单击**“button1”**将其选中。
在**“属性”窗口中,将“Label”**设置为“显示操作窗格 1”。
将另一个按钮添加到**“group1”,并将“Label”**属性设置为“显示操作窗格 2”。
从**“工具箱”的“Office 功能区控件”选项卡中,将“ToggleButton”控件拖到“group1”**上。
将**“Label”**属性设置为“隐藏操作窗格”。
使用自定义选项卡上的按钮隐藏和显示操作窗格
最后一个步骤是添加对用户进行响应的代码。 为上述两个按钮的 Click 事件和切换按钮的 Click 事件添加事件处理程序。 向这些隐藏和显示操作窗格的事件处理程序添加代码。
使用自定义选项卡中的按钮隐藏和显示操作窗格
在**“解决方案资源管理器”中,右击 MyRibbon.cs 或 MyRibbon.vb,然后单击“查看代码”**。
将下面的代码添加到 MyRibbon 类的顶部。 这段代码可以创建两个操作窗格对象。
Dim actionsPane1 As New ActionsPaneControl1() Dim actionsPane2 As New ActionsPaneControl2()
ActionsPaneControl1 actionsPane1 = new ActionsPaneControl1(); ActionsPaneControl2 actionsPane2 = new ActionsPaneControl2();
将 MyRibbon_Load 方法替换为以下代码。 这段代码会将操作窗格对象添加到 ActionsPane.Controls 集合中,并在视图中这些隐藏对象。 Visual C# 代码还会将委托附加到多个功能区控件事件。
Private Sub MyRibbon_Load(ByVal sender As System.Object, ByVal e As RibbonUIEventArgs) Handles MyBase.Load Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane1) Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane2) actionsPane1.Hide() actionsPane2.Hide() Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = False End Sub
private void MyRibbon_Load(object sender, RibbonUIEventArgs e) { Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane1); Globals.ThisWorkbook.ActionsPane.Controls.Add(actionsPane2); actionsPane1.Hide(); actionsPane2.Hide(); Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = false; // Use the following code in projects that target the .NET Framework 4. this.button1.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler( this.button1_Click); this.button2.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler( this.button2_Click); this.toggleButton1.Click += new Microsoft.Office.Tools.Ribbon.RibbonControlEventHandler( this.toggleButton1_Click); // For .NET Framework 3.5 projects, use the following code instead. // this.button1.Click += new EventHandler<RibbonControlEventArgs>(button1_Click); // this.button2.Click += new EventHandler<RibbonControlEventArgs>(button2_Click); // this.toggleButton1.Click += new EventHandler<RibbonControlEventArgs>(toggleButton1_Click); }
有关面向 .NET Framework 4 和 .NET Framework 3.5 的项目的 Visual C# 代码示例有何区别的更多信息,请参见更新迁移到 .NET Framework 4 的 Office 项目中的功能区自定义项。
将以下三个事件处理程序方法添加到 MyRibbon 类。 这些方法处理上述两个按钮 Click 事件和切换按钮的 Click 事件。 button1 和 button2 的事件处理程序显示两个交替出现的操作窗格。 toggleButton1 的事件处理程序显示和隐藏活动操作窗格。
Private Sub Button1_Click(ByVal sender As System.Object, _ ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _ Handles Button1.Click Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True actionsPane2.Hide() actionsPane1.Show() ToggleButton1.Checked = False End Sub Private Sub Button2_Click(ByVal sender As System.Object, _ ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _ Handles Button2.Click Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True actionsPane1.Hide() actionsPane2.Show() ToggleButton1.Checked = False End Sub Private Sub ToggleButton1_Click(ByVal sender As System.Object, _ ByVal e As Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs) _ Handles ToggleButton1.Click If ToggleButton1.Checked Then Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = False Else Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = True End If End Sub
private void button1_Click(object sender, RibbonControlEventArgs e) { Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = true; actionsPane2.Hide(); actionsPane1.Show(); ToggleButton1.Checked = false; } private void button2_Click(object sender, RibbonControlEventArgs e) { Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = true; actionsPane1.Hide(); actionsPane2.Show(); ToggleButton1.Checked = false; } private void toggleButton1_Click(object sender, RibbonControlEventArgs e) { if (toggleButton1.Checked == true) { Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = false; } else { Globals.ThisWorkbook.Application.DisplayDocumentActionTaskPane = true; } }
测试自定义选项卡
运行项目时,Excel 即会启动。此时**“我的自定义选项卡”选项卡会显示在功能区中。 单击“我的自定义选项卡”**选项卡上的按钮以显示或隐藏操作窗格。
测试自定义选项卡
按 F5 运行项目。
单击**“我的自定义选项卡”**选项卡。
在**“自定义操作窗格管理器”组中,单击“显示操作窗格 1”**。
操作窗格将出现,并显示标签“操作窗格 1”。
单击**“显示操作窗格 2”**。
操作窗格将出现,并显示标签“操作窗格 2”。
单击**“隐藏操作窗格”**。
操作窗格不再可见。
后续步骤
可从以下主题了解有关如何自定义 Office 用户界面的更多信息:
将基于上下文的 UI 添加到任何文档级自定义项。 有关更多信息,请参见操作窗格概述。
扩展标准的或自定义的 Microsoft Office Outlook 窗体。 有关更多信息,请参见演练:设计 Outlook 窗体区域。
请参见
任务
概念
其他资源
修订记录
日期 |
修订记录 |
原因 |
---|---|---|
2010 年 9 月 |
增加了 .NET Framework 3.5 代码示例。 |
内容 Bug 修复 |
2010 年 9 月 |
增加了确保此演练生成自定义选项卡的步骤。 在此更改之前,控件仅显示在“外接程序”选项卡中。 |
内容 Bug 修复 |