2011-07-18 5 views
0

メインOutlookウィンドウの標準ツールバーにボタンを追加しました。私はOutlookプロジェクトをビルドするときに動作します。しかし、プロジェクトを再構築するたびに、ボタンはMain 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、あなたの質問を取り直すことをお勧めしますか?私が知る限り、あなたはVisual StudioではなくOutlookをtweekingすることを求めています。右? –

+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がnullであるかどうかを確認するには、ボタンが重複していますか?うーん....私の推測では、あなたが投稿したコード以外の何かがfirstButtonにガベージコレクションをさせるということです。 –

+0

@ Nick ...はい、ガベージコレクションはこの作業を行います.. – thinkcool

関連する問題