Visioウィンドウのボタンのセットを使用して独自のツールバーを作成する必要があります。次のコードはツールバーを生成し(動作します)、ボタンを作成し(動作します)、Clickイベントハンドラを割り当てます。CommandBarButtonいくつかのボタンのイベントをクリックします。
vsoCommandBar = vsoCommandBars.Add("MyCommandBat", Office.MsoBarPosition.msoBarTop, false, true);
var vsoButtonX1 = (Office.CommandBarButton)vsoCommandBar.Controls.Add(
Office.MsoControlType.msoControlButton, 1, 2, 1, false);
vsoButtonX1.Caption = "Test1";
vsoButtonX1.Tag = "";
vsoButtonX1.Click += GlobalEvents.btnTestClick;
var vsoButtonX2 = (Office.CommandBarButton)vsoCommandBar.Controls.Add(
Office.MsoControlType.msoControlButton, 1, 2, 2, false);
vsoButtonX2.Caption = "Test2";
vsoButtonX2.Tag = "";
vsoButtonX2.Click += GlobalEvents.btnTest2Click;
ハンドラは単純ですが、もちろん(もちろん)異なります。
public void btnTestClick(Office.CommandBarButton vsoButton, ref bool cancelDefault)
{
MessageBox.Show("btnTestClick!");
}
public void btnTest2Click(Office.CommandBarButton vsoButton, ref bool cancelDefault)
{
MessageBox.Show("btnTest2Click!");
}
ボタンをクリックすると、「btnTestClick!」というダイアログが表示されます。 「btnTest2Click!」で「OK」ダイアログを押した後に表示されます。 2つのボタンのいずれか。
また、私はこの行を飛ばした場合: "!btnTestClick" 私は、単一のダイアログが表示されます
vsoButtonX2.Click += GlobalEvents.btnTest2Click;
をどのボタンでも。
コマンドバーには少なくとも1つのクリックプロセッサしかないようです。それは本当ですか?
PS:もちろん、私は "vsoButton"パラメータとタグを使ってwhtボタンが押されたことを検出できますが、別のイベントハンドラを使う方がより便利です...可能でしょうか?