onclick委托只触发一次

时间:2011-05-11 12:16:22

标签: c# delegates outlook-addin

我正在编写一个outlook加载项,为outlook添加一个菜单。 虽然我将委托设置为菜单的操作,但似乎在调用代理后删除它 - 单击菜单项。下次用户点击它不会到达我的代表。 代码示例:

menuCommand = (Office.CommandBarButton)cmdBarControl.Controls.Add(
Office.MsoControlType.msoControlButton, missing, missing, missing, true);

menuCommand.Caption = "&Generate weekly...";
menuCommand.Tag = "Generate";
menuCommand.FaceId = 65;

menuCommand.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(
menuCommand_Generate_Click);

menuCommand = (Office.CommandBarButton)cmdBarControl.Controls.Add(
    Office.MsoControlType.msoControlButton, missing, missing, missing, true);

menuCommand.Caption = "&About";
menuCommand.Tag = "About";
menuCommand.FaceId = 65;

menuCommand.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(
menuCommand_About_Click);
menuCommand.BeginGroup = true;

我应该怎么做才能让菜单每次都触发动作?

1 个答案:

答案 0 :(得分:1)

menuitem是局部变量吗? , 因此,一旦垃圾收集器超出范围,它就可能会被清理干净。

尝试将变量保存在全局对象中。