2012-04-26 6 views
2

私はリボンxmlを持っています。ボタンをクリックすると、それぞれのボタンに対して2つの異なるウィンドウフォームを開く必要がありますが、同じファイルで2つの異なるボタンクリック機能を定義することはできません。
のxml:私は2つのボタン を有するコードが、私は、ボタンのクリックに2つの関数を書くことができますどのように2つのボタンのクリックアクティビティを実装する方法

STDMETHOD(ButtonClicked)(IDispatch* ribbon) 
    {//MessageBoxW(NULL,L"Button Clicked!",L"NativeAddin",MB_OK); 
     NativeAddIn::ApplicationConfiguration ^appConfigurationform = gcnew NativeAddIn::ApplicationConfiguration(); 
     appConfigurationform->ShowDialog(); 
     return S_OK; 
    } 
STDMETHOD(ButtonClicked)(IDispatch* ribbon) 
    { 
     //MessageBoxW(NULL,L"Button Clicked!",L"NativeAddin",MB_OK); 
     NativeAddIn::Helpme ^helpmeobj = gcnew NativeAddIn::Helpme(); 
     helpmeobj->ShowDialog(); 
     return S_OK; 
    } 

です。 来るエラー上記のコードを実行中である:

HRESULT CConnect :: ButtonClicked(のIDispatch *)」:メンバ関数既に定義または宣言しました。

<button id="GoToAppConfiguration" size="large" label="Application Configuration" imageMso="AutoArchiveSettings" onAction="ButtonClicked"/> 
<button id="GoToAppHelp" size="large" label="Help" imageMso="CreateReportFromWizard" onAction="ButtonClicked"/> 

あなたはヘルプボタンでButtonClickedに別の名前を使用することができます....

+0

<ボタンID = "GoToAppConfiguration" サイズ= "大" ラベル= "アプリケーション設定" imageMso = "AutoArchiveSettings" onAction = "ButtonClicked" /> <ボタンID = "GoToAppHelp" サイズ= "large" label = "ヘルプ" imageMso = "CreateReportFromWizard" onAction = "ButtonClicked" /> – zytham

答えて

2

を助けてください。

<button id="GoToAppHelp" size="large" label="Help" imageMso="CreateReportFromWizard" onAction="ButtonHelpClicked"/> 
STDMETHOD(ButtonHelpClicked)(IDispatch* ribbon) 
{ 
    //MessageBoxW(NULL,L"Button Clicked!",L"NativeAddin",MB_OK); 
    NativeAddIn::Helpme ^helpmeobj = gcnew NativeAddIn::Helpme(); 
    helpmeobj->ShowDialog(); 
    return S_OK; 
} 

これに対する代替はIRibbonControlコンテキスト(ribbonパラメータ)を使用することで、switch文をトリガするために制御IDを要求します。すべてのボタンのクリックを処理する単一のButtonClickedメソッドがあります。

STDMETHOD(ButtonClicked)(IDispatch* ribbon) 
{ 
    switch (ribbon.Id) 
    { 
    case "GoToAppConfiguration" : 
     //MessageBoxW(NULL,L"Button Clicked!",L"NativeAddin",MB_OK); 
     NativeAddIn::ApplicationConfiguration ^appConfigurationform = gcnew NativeAddIn::ApplicationConfiguration(); 
     appConfigurationform->ShowDialog(); 
     return S_OK; 
    case "GoToAppHelp" : 
     //MessageBoxW(NULL,L"Button Clicked!",L"NativeAddin",MB_OK); 
     NativeAddIn::Helpme ^helpmeobj = gcnew NativeAddIn::Helpme(); 
     helpmeobj->ShowDialog(); 
     return S_OK; 
    } 
} 
関連する問題