是否可以从Powerpoint幻灯片中访问功能区菜单项? 例如,我在功能区菜单下有一个复选框。现在我希望当我点击一个形状时,应该检查这个复选框吗?
问题似乎很容易,但我找不到办法。你有什么主意吗? (更喜欢C#)
使用CODE编辑
自定义功能区菜单
public partial class RibbonMenu { private void RibbonMenu_Load(object sender, RibbonUIEventArgs e) { } public void ChangeCheckBox() { System.Windows.Forms.MessageBox.Show("The CheckBox is changed"); this.checkBox.Checked = true; this.checkBox.Label = "AAAAAAA" } }
抓住选择事件
public partial class ThisAddIn { private RibbonMenu menu; private void ThisAddIn_Startup(object sender, System.EventArgs e) { CreateRibbonExtensibilityObject(); Application.WindowSelectionChange += new PowerPoint.EApplication_WindowSelectionChangeEventHandler(Application_WindowSelectionChange); } protected override Microsoft.Office.Core.IRibbonExtensibility CreateRibbonExtensibilityObject() { this.menu = new RibbonMenu(); return Globals.Factory.GetRibbonFactory().CreateRibbonManager(new Microsoft.Office.Tools.Ribbon.IRibbonExtension[] { this.menu }); } private void Application_WindowSelectionChange(PowerPoint.Selection Sel) { //.... Check if the selection is a shape's selection this.menu.ChangeCheckBox(); } }
结果是消息框" CheckBox已更改" "出现了,但没有选中复选框,标签也没有更改为" AAAAAA"
答案 0 :(得分:3)
使用Globals访问Office功能区菜单项,如下所示:
private void Access_All_Ribbons_Globals() { Globals.Ribbons.Ribbon1.comboBox1.Text = "Hello World"; }
答案 1 :(得分:0)
我认为你必须使用Application.WindowSelectionChange
事件。
根据MSDN:
在活动文档窗口中选择文本,形状或幻灯片时发生更改,无论是在用户界面还是代码中。
它将为您提供一个Selection
对象,您可以进一步使用它。
事件处理程序的签名:
void (Microsoft.Office.Interop.PowerPoint.Selection selection)