ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   Click event on menu item is lost after first time firing of the event (https://www.excelbanter.com/excel-programming/386663-click-event-menu-item-lost-after-first-time-firing-event.html)

[email protected]

Click event on menu item is lost after first time firing of the event
 
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.msoControlPopu p,
1, null, 1, true);
Ctrl1.Caption = "Menu Item";


Ctrl2 =
(Office.CommandBarButton)Ctrl1.Controls.Add(Office .MsoControlType.msoControlButton,
1, null, 1, true);
Ctrl2.Visible = true;
Ctrl2.Caption = "C# Test Button 1";
Ctrl2.Tag = "AddinTag1";
Ctrl2.Click += new
Office._CommandBarButtonEvents_ClickEventHandler(t his.moBtn_Click);


Ctrl3 =
(Office.CommandBarButton)Ctrl1.Controls.Add(Office .MsoControlType.msoControlButton,
1, null, 1, true);
Ctrl3.Visible = true;
Ctrl3.Caption = "C# Test Button 2";
Ctrl3.Tag = "AddinTag2";
Ctrl3.Click += new
Office._CommandBarButtonEvents_ClickEventHandler(t his.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


[email protected]

Click event on menu item is lost after first time firing of the event
 
On Apr 2, 4:10 pm, 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.msoControlPop up,
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(t his.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(t his.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.



All times are GMT +1. The time now is 07:05 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com