2014-09-19 7 views
1

Microsoft Office에 단일 리본을 달아서 모든 추가 기능을 갖출 수 있습니다. 두 개의 추가 기능이 있다고 가정 해 봅시다. 둘 다 리본에있는 단일 단추이며, 그러면 winform이 열립니다. 사용자가 첫 번째 추가 기능을 설치하고 프로그램이 설치된 리본을 확인합니다. 아무 것도 없기 때문에 추가 기능을 호출하는 리본과 단추가 추가됩니다.프로그래밍 방식으로 리본을 만들고 컨트롤을 추가하는 방법?

그런 다음 동일한 리본을 추가하는 대신 이미 동일한 이름의 리본이 설치되어 있는지 확인하고, 동일한 이름의 리본이 이미 설치되어 있는지 확인한 다음, 이미있는 리본에만 추가합니다 설치된 리본이 없으면 (아무튼 첫 번째 추가 기능이 제거되었거나 뭔가) 단추가있는 리본이 추가됩니다.

그래서 ThisAddin_Startup 이벤트에서 "RibbonController"클래스를 인스턴스화한다고 생각했습니다. RibbonController 클래스에서 리본 존재 여부를 확인합니다. (모든 추가 기능에는 RibbonController 클래스가 있습니다.)

MS Office Add-in 프로그래밍 영역에서 상당히 새로운 기능이므로 이전에 설치하지 않은 경우 프로그래밍 방식으로 리본 개체에 액세스하고 프로그램 개체를 만드는 데 도움이 필요합니다.

답변

0

모든 addin에 대해 동일한 구조의 Ribbon.xml을 만들었습니다. 모든 ribbon.xml에 "네임 스페이스"를 설정하여 매번 동일한 탭에 컨트롤을 추가하는 데 도움이됩니다.

<customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui" onLoad="Ribbon_Load" xmlns:x="NAMESPACE FOR EVERY TAB"> //the namespaces abreviation is "x" 
    <ribbon> 
     <tabs> 
      <tab idQ="x:tab1" label="CommonTab" > 
      .... 

그런 다음 idQ 탭에 "x :"접두사를 설정하여 네임 스페이스를 알 수 있습니다. 동일한 xml 구조를 사용하는 모든 추가 기능에서 탭의 컨트롤이 단일 탭에 추가됩니다.

0

우리는 직장에서 Add In Express을 사용합니다. 정말 사용하기 쉽고 모든 것을합니다. 그것은 비록 지불합니다.

또한 this 답변을 참조하십시오.

+0

그리고 내가 요청한 것과 똑같은 일을 할 수 있습니까? 제 3 자의 물건이 없으면 정말하고 싶습니다. 그러나 그것이 유일한 방법이라면, 사장님이 그것을 사도록 설득해야합니다. – Laureant

+0

훨씬 더 많이 할 수 있습니다. 당신은 당신 자신을 할 수 있지만 당신은 가격을 이길 수 없습니다. 450 달러면 인생을 훨씬 쉽게 만들어주는 도구를 얻을 수 있습니다. 나는 add-in-express를 위해 일하지 않지만, 내가 직장에서 사용하는 도구를 정말 좋아하기 때문에. – Mayank

+0

감사합니다! 문제는 타사 응용 프로그램없이이 기본 접근 방식을 알고 싶다는 것입니다. – Laureant

관련 문제