2012-04-06 9 views
3

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"대화 상자를 누른 후. 두 버튼 중 하나에.

또한, 나는이 줄을 건너 뛸 경우 : "btnTestClick"나는 하나의 대화 상자가 나타납니다

vsoButtonX2.Click += GlobalEvents.btnTest2Click; 

을 어떤 단추든지에.

적어도 명령 모음에는 클릭 프로세서가 하나만있는 것 같습니다. 그것은 사실입니까?!

추신 : 물론, "vsoButton"매개 변수와 태그를 사용하여 wht 버튼을 감지 할 수 있지만 다른 이벤트 핸들러를 사용하는 것이 더 편리해 보입니다. 가능합니다.

답변

4

Visio에서 내가 살아 질문을 왼쪽 어쩌면 ... SMB에 도움이됩니다 ...

vsoButtonX1.Tag = "1"; 
vsoButtonX2.Tag = "2"; 

이 문제를 해결 ... 그 ... 태그에 의해 버튼을 구별

관련 문제