在ElementHost变为可见之后,Context Menu上的CommandBarButton不起作用

时间:2013-03-01 16:13:33

标签: excel wpf-controls vsto excel-2010 excel-addins

我在excel的上下文菜单上有一个CommandBarPopup,它包含三个CommandBarButtons,其中一个按钮打开一个网页,另外两个打开一个自定义任务窗格。

如果我使包含承载WPF用户控件的元素主机的自定义任务窗格可见,那么我添加的任何CommandBarButtons将停止工作。 即使我关闭自定义任务窗格,它仍然无法正常工作。

如果我对自定义任务窗格容器和Web浏览器执行相同操作,它似乎可以正常工作。

以下是我们正在使用的代码

private void InitializeComponent()
    {
        this.elementHost1 = new System.Windows.Forms.Integration.ElementHost();
        this.myView = new MyView();
        this.SuspendLayout();
        // 
        // elementHost1
        // 
        this.elementHost1.Dock = System.Windows.Forms.DockStyle.Fill;
        this.elementHost1.Location = new System.Drawing.Point(0, 0);
        this.elementHost1.Name = "elementHost1";
        this.elementHost1.Size = new System.Drawing.Size(780, 560);
        this.elementHost1.TabIndex = 0;
        this.elementHost1.Text = "elementHost1";
        this.elementHost1.Child = this.myView;
        // 
        // MyTaskPane
        // 
        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.Controls.Add(this.elementHost1);
        this.Name = "MyTaskPane";
        this.Size = new System.Drawing.Size(780, 560);
        this.ResumeLayout(false);

    }

1 个答案:

答案 0 :(得分:0)

所以答案是CommandBarButtons一旦变量范围结束就被处理了,这是令人惊讶的,因为我认为它们将被附加到excel应用程序对象。同时查看excel命令栏,我可以看到那里的按钮,但点击它们导致点击事件不会触发。 无论如何,我将它们存储在一个类变量中,然后再次工作。