2016-09-16 8 views
0

MS Wordアプリケーションを起動すると、
ボタンが作成され、MS Wordアプリケーションが閉じられるとボタンが削除されるアプリケーションを実行しています。だからここ
は...私はMS Wordやボタンを関連付けるために何をしたかであるC#でMS Wordの実行中のインスタンスを閉じる方法

​​

しかし、私はこのエラーを取得していますここでエラーmapping.Add(new KeyValuePair<int, Button>(processId, deleteButton));
を得た:「追加のためのいかなるオーバーロードメソッドは1つの引数を取りません"...
どうすればいいですか?
これに対応するソリューションはありますか?
ありがとうございます。
編集:
私は自分のコードを変更しましたが、私が作成した最後のボタンだけを削除することはできますが、他のものを削除したいときは...私はブレークポイントを異なる変数。 しかし、私は2つのボタンを作成すると、mapping.addの数は常に1に等しいです...それは正常ですか?ここ

コードです:、私はあなたの実際の質問に答える方法がわからない

try 
      { 

       Word.Application wdApp = new Word.Application(); 
       string oldCaption = wdApp.Application.Caption; 
       string guid = Guid.NewGuid().ToString(); 
       //set caption to random value 
       wdApp.Application.Caption = guid; 
       //make sure app is visible: 
       wdApp.Visible = true; 
       //find random value to get process id 
       int processId = GetProcessIdByWindowTitle(guid); 


       //reset caption 
       wdApp.Application.Caption = oldCaption; 


       if(wdApp.Visible == true) 
       { 

        deleteButton = new Microsoft.Office.Tools.Word.Controls.Button(); 
        //create a dictionary 
        mapping = new Dictionary<int, Button>(); 
        //add mapping 
        mapping.Add(processId, deleteButton); 
        PIC_Barre.Controls.Add(deleteButton); 




        //PIC_Barre.Controls.Add(_button); 
       } 
       ((Word.ApplicationEvents4_Event)wdApp).Quit +=() => 
       { 

       // remove the button corresponding to the processid 
        var method = (Action)(() => 
       PIC_Barre.Controls.Remove(mapping[processId])); 
        if (mapping[processId].InvokeRequired) 
        { 
         mapping[processId].Invoke(method); 

        } 
       // remove the key from the dictionary 

       }; 
       Debugger.Break(); 



      } 
      catch 
      { 

      } 
+0

https://msdn.microsoft.com/en-us/library/af6z0wa2.aspx – Danieboy

+0

が、あなたが得ているエラーはかなり自明です。ディクショナリ .Addには1つの引数しかないオーバーロードはありません!! 1つの引数としてKeyValuePairを渡すのではなく、その順序でキーと値を2つの別々の引数として渡すだけです。 – Jakotheshadows

答えて

0
Word._Document document = this.Application.ActiveDocument; 
document.Close(Word.WdSaveOptions.wdDoNotSaveChanges); 
+0

私は近くにイベントを置く必要があります。文書を閉じるときにボタンを削除する必要があります –

+0

ここでは、「これ」は何のためですか?フォーム? –

+0

@Tatsu https://msdn.microsoft.com/en-us/library/af6z0wa2.aspx – Danieboy

関連する問題