これはVS2010+Office2010アドインです。必要なのは、複数の組み込みタブにボタン(またはボタングループ)を追加することだけです。たとえば、私のボタンは、新しいメールメッセージリボンと新しい予定リボンの両方で使用できる必要があります。( Visual Designerで)新しいタブを追加しようとしましたが、機能しないようです。ボタングループは[新着メールメッセージ]タブに表示されますが、[予定]タブには表示されません。ところで、私は次のIDを使用しています:TabNewMailMessage
とTabAppointment
。
4 に答える
これについて頭を悩ませている人にとって、[予定]タブと[新着メールメッセージ]タブの両方で自分のグループを表示できる唯一の方法は、組み込みのタブごとに1つのリボンを追加し、すべてのUIとコードをコピーして貼り付けることでした。あるリボンから別のリボンへ。組み込みタブごとに適切なRibbonType(リボンのプロパティ)を選択してください。
指定された回答は廃止されました!
- OfficeRibbonオブジェクトで、必要な数の場合にRibbonTypeを設定します(例:Microsoft.Outlook.ExplorerおよびMicrosoft.Outlook.Mail.Read)。
- 最初のタブを追加し、ControlId.OfficeIdを設定します(例:TabMail)
- 別のタブを追加し、ControlId.OfficeIdを設定します(例:TabReadMessage)
- 各タブでグループとボタンを追加し、同じOnClickメソッドを指すようにButton.Clickイベントを設定します
私はOutlookを持っていませんが、Word / Excel / PPTで次のものを使用しているので、Outlookでも機能することを期待しています(テストされていません!)。
リボン(XML)アイテムを追加してから、同じように見え、同じコードを呼び出すがIDが異なるボタンで2つのタブを追加してみてください。
XML:
<tab idMso="TabNewMailMessage">
<group id="MyGroup1" label="My Group1">
<button id="myButton1" label="Button 1" size="large" onAction="ButtonOnAction" />
</group>
</tab>
<tab idMso="TabAppointment">
<group id="MyGroup2" label="My Group2">
<button id="myButton2" label="Button 2" size="large" onAction="ButtonOnAction" />
</group>
</tab>
C#:
public void ButtonOnAction(IRibbonControl control)
{
switch (control.Id)
{
case "myButton1":
case "myButton2":
// do something
Console.Out.WriteLine("Button ID: {0}", control.Id);
break;
}
}
上記の回答と同様ですが、XMLを使用せずに、2つの異なる場所にグループを配置して2番目のタブを追加できます。
リボンデザイナで、リボンに2番目のタブを追加し、ControlIDをグループを表示する2番目の場所に変更します。次に、元のタブでグループを右クリックし、[コピー]をクリックします。新しいタブに戻ってクリックし、そこにグループを貼り付けます。すでにグループにあるものをすべてコピーします。ただし、イベントを再度追加する必要があります。しかし、私にとっては、すでに作成されたイベントを再利用しただけで、完全に機能します。乾杯。