2012-05-10 35 views
6

Tôi đã thử 3 mẫu mã khác nhau và tất cả đều không thành công.Cách thêm mục menu vào Excel 2010 Ô Context Menu - mã cũ không hoạt động

Dưới đây là các mã từ một nhân viên MSFT (How to show a context menu on a range), hai mẫu khác có khá nhiều mã chính xác như nhau:

private void ThisAddIn_Startup(object sender, System.EventArgs e) 
{ 
    CommandBar cellbar = this.Application.CommandBars["Cell"]; 
    CommandBarButton button = (CommandBarButton) cellbar.FindControl(MsoControlType.msoControlButton, 0, "MYRIGHTCLICKMENU", Missing.Value, Missing.Value); 
    if (button == null) 
    { 
     // add the button 
     button = (CommandBarButton) cellbar.Controls.Add(MsoControlType.msoControlButton, Missing.Value, Missing.Value, cellbar.Controls.Count, true); 
     button.Caption = "Refresh"; 
     button.BeginGroup = true; 
     button.Tag = "MYRIGHTCLICKMENU"; 
     button.Click += new _CommandBarButtonEvents_ClickEventHandler(MyButton_Click); 
    } 
} 

private void MyButton_Click(CommandBarButton cmdBarbutton, ref bool cancel) 
{ 
    System.Windows.Forms.MessageBox.Show("MyButton was Clicked", "MyCOMAddin"); 
} 

Tôi đang mong đợi để xem một mục trình đơn gọi là Refresh khi đúng cách nhấp vào một ô. Tuy nhiên, chạy mã trên (trong Excel 2010) không có mục 'Làm mới'.

Thực sự đánh giá cao bất kỳ mẹo nào về những gì tôi có thể bị thiếu hoặc nếu chức năng này thay đổi từ năm 2007 đến 2010?

Trả lời

3

Kiểm tra xem loại mã này có tồn tại không (hoặc trong addin của riêng bạn hoặc bất kỳ công cụ nào khác mà công ty bạn sử dụng) và nếu nó nhận xét hoặc chuyển nó sang sự kiện _Shutdown của trình bổ sung.

//reset commandbars 
Application.CommandBars["Cell"].Reset(); 
+1

Xin cảm ơn, một trình bổ sung khác đang tải và có mã đặt lại này đang xóa mục menu của tôi –

Các vấn đề liên quan