On Apr 2, 4:10 pm, mayuresh.kast...@gmail.com wrote:
> Hi,
>
> I am using VSTO SE for excel development. I am trying to add menu
> items to context menu. Well, I can add it but some how the menu item
> loses the click event when it is clicked once i.e. click event handler
> is invoked only once.
>
> Here is the code fragment that adds menu item,
>
> Office.CommandBarPopup Ctrl1;
> Office.CommandBarButton Ctrl2, Ctrl3;
>
> Ctrl1 =
> (Office.CommandBarPopup)Application.CommandBars["Cell"].Controls.Add(Office*.MsoControlType.msoControlPopup,
> 1, null, 1, true);
> Ctrl1.Caption = "Menu Item";
>
> Ctrl2 =
> (Office.CommandBarButton)Ctrl1.Controls.Add(Office.MsoControlType.msoContro*lButton,
> 1, null, 1, true);
> Ctrl2.Visible = true;
> Ctrl2.Caption = "C# Test Button 1";
> Ctrl2.Tag = "AddinTag1";
> Ctrl2.Click += new
> Office._CommandBarButtonEvents_ClickEventHandler(this.moBtn_Click);
>
> Ctrl3 =
> (Office.CommandBarButton)Ctrl1.Controls.Add(Office.MsoControlType.msoContro*lButton,
> 1, null, 1, true);
> Ctrl3.Visible = true;
> Ctrl3.Caption = "C# Test Button 2";
> Ctrl3.Tag = "AddinTag2";
> Ctrl3.Click += new
> Office._CommandBarButtonEvents_ClickEventHandler(this.moBtn_Click1);
>
> These are event handlers,
>
> private void moBtn_Click(Office.CommandBarButton Ctrl, ref
> bool CancelDefault)
> {
>
> MessageBox.Show(Ctrl.Tag);
> Trace.Write("moBtn_Click - " + Ctrl.Tag);
> }
>
> private void moBtn_Click1(Office.CommandBarButton Ctrl, ref
> bool CancelDefault)
> {
> MessageBox.Show(Ctrl.Tag);
> Trace.Write("moBtn_Click - " + Ctrl.Tag);
> }
>
> Can anybody tell me what is happening here?
>
> Thanks in advance
Hey, problem is solved. Just declared Ctrl1,Ctrl2 and Ctrl3 as members
of class rather than local to the function.
|