办公室 2007
创建功能区
创建类库项目
使用功能区自定义
将以下代码添加到项目的 ThisAddin、ThisWorkbook 或 ThisDocument 类。此代码覆盖 CreateRibbonExtensibilityObject 方法并将功能区返回给 Office 应用程序。
protected override Microsoft.Office.Core.IRibbonExtensibility
CreateRibbonExtensibilityObject()
{
return new Microsoft.Office.Tools.Ribbon.RibbonManager(
new Microsoft.Office.Tools.Ribbon.OfficeRibbon[] { new
SharedRibbonLibrary.Ribbon1() });
}
Run Code Online (Sandbox Code Playgroud)向项目添加一个新类。接受默认名称“Class1.cs”。
将 Class1 文件中的代码替换为以下内容:
partial class ThisRibbonCollection : Microsoft.Office.Tools.Ribbon.RibbonReadOnlyCollection
{
internal SharedRibbonLibrary.Ribbon1 Ribbon1
{
get { return this.GetRibbon<SharedRibbonLibrary.Ribbon1>(); }
}
}
Run Code Online (Sandbox Code Playgroud)好的 - 你完成了!您现在可以访问功能区和您在代码中添加到功能区的按钮。让我们尝试处理消费项目中的事件。
处理按钮点击事件
将以下代码添加到项目的启动事件处理程序中。
Globals.Ribbons.Ribbon1.button1.Click += new EventHandler<Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs>(button1_Click);
Run Code Online (Sandbox Code Playgroud)将以下事件处理程序添加到您的项目中:
void button1_Click(object sender,
Microsoft.Office.Tools.Ribbon.RibbonControlEventArgs e)
{
System.Windows.Forms.MessageBox.Show("I can handle events!");
}
Run Code Online (Sandbox Code Playgroud)运行项目。
当 Office 应用程序打开时,单击加载项选项卡,然后单击您的按钮。一条消息说“我可以处理事件!” 出现。
Office 2010实施:http : //blogs.msdn.com/b/vsto/archive/2010/06/23/sharing-a-ribbon-customization-between-office-projects-in-visual-studio-2010-mclean-斯科菲尔德.aspx
2010 年的实现实际上添加了两个功能区 - 每个加载项一个。我相信这篇文章仅适用于不同 Office 产品(例如 Word 和 Excel)中同一功能区上的加载项,而不适用于两个 Excel 加载项。
我发现的唯一其他途径是第 3 方组件:http : //www.add-in-express.com/creating-addins-blog/2012/11/05/excel-addin-shared-ribbon-tabs/
| 归档时间: |
|
| 查看次数: |
6336 次 |
| 最近记录: |