2011-07-18 45 views
0

我在主Outlook窗口的標準工具欄中添加了一個按鈕。它在我構建Outlook項目時起作用。但是無論何時我再次構建項目,該按鈕都會在主Outlook窗口中再次複製。如果已在Outlook中找到標準工具欄,則刪除按鈕

我的代碼在這裏:

private void AddToolbar() 
    { 
     if (cbar == null) 
     { 
      cbar = this.Application.ActiveExplorer().CommandBars["Standard"]; 
     } 
     try 
     { 
      Office.CommandBarButton btn = (Office.CommandBarButton)cbar.Controls.Add(1, missing, missing, missing, missing); 
      btn.Caption = "button1"; 
      btn.Tag = "button1"; 
      if (this.firstButton == null) 
      { 
       this.firstButton = btn; 
       firstButton.Click += new Office._CommandBarButtonEvents_ClickEventHandler(ButtonClick); 
      } 
     } 
     catch (System.Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 

如何爲這個按鈕添加刪除功能,如果已經找到?

+0

thinkcool,我可以建議您重新提出您的問題嗎?據我所知,你問的是微軟的Outlook,而不是Visual Studio。對? –

+0

我正在使用Visual Studio進行開發.. – thinkcool

+0

沒錯,但我不認爲你的IDE對這個問題本身有很大影響。 :-) –

回答

0

您可能想要在創建另一個按鈕之前檢查firstButton是否爲空。例如:

 if (this.firstButton == null) 
     {    
      Office.CommandBarButton btn = (Office.CommandBarButton)cbar.Controls.Add(1, missing, missing, missing, missing); 
      btn.Caption = "button1"; 
      btn.Tag = "button1"; 

      this.firstButton = btn; 
      firstButton.Click += new Office._CommandBarButtonEvents_ClickEventHandler(ButtonClick); 
     } 
+0

我試過了,這是行不通的。我試圖複製在http://msdn.microsoft.com/en-us/library/ms269110%28v=VS.90%29.aspx給出的想法去除..但卡住了.. – thinkcool

+0

因此,即使當你檢查在創建新按鈕之前查看firstButton是否爲空,它仍會導致重複按鈕?嗯....我的猜測是,除了你發佈的代碼之外的東西導致firstButton被垃圾收集。 –

+0

@尼克...是的垃圾收集這樣做的工作.. – thinkcool