InfoPath에 대해 리본 메뉴 사용자 지정
Microsoft Office InfoPath에서 리본 메뉴를 사용자 지정할 때는 응용 프로그램에서 사용자 지정 리본 메뉴를 표시할 위치를 고려해야 합니다.InfoPath 2010은 다음과 같은 세 가지 종류의 InfoPath 응용 프로그램 창에 리본 메뉴를 표시할 수 있습니다.
디자인 모드에서 열리는 양식 템플릿을 표시하는 창
양식 템플릿을 기반으로 하는 양식을 표시하는 창
인쇄 미리 보기 창
적용: 이 항목에서는 InfoPath 2010 용 응용 프로그램 수준 프로젝트에 적용 됩니다.자세한 내용은 Office 응용 프로그램 및 프로젝트 형식에 따라 사용 가능한 기능을 참조하십시오.
사용자와 디자이너는 디자인 모드에서 양식 템플릿을 열어 템플릿의 모양과 레이아웃을 수정합니다.사용자는 양식 템플릿에서 기반이 되는 양식을 열어 내용을 추가합니다.자세한 내용은 Switch form designing a form template to filling out a form을 참조하십시오.
인쇄 미리 보기 창을 사용하면 디자이너와 사용자가 양식이나 양식 템플릿을 인쇄하기 전에 해당 페이지를 미리 볼 수 있습니다.
[!참고]
추가 기능 탭은 인쇄 미리 보기 창에 표시되지 않습니다.인쇄 미리 보기 창에 사용자 지정 탭을 표시하려면 탭의 OfficeId 속성이 TabAddIns로 설정되어 있지 않은지 확인합니다.
리본 메뉴를 표시할 각 창의 리본 메뉴 유형을 지정해야 합니다.
리본 디자이너에서 리본 메뉴 유형 지정
리본(비주얼 디자이너) 항목을 사용하는 경우 속성 창에서 리본 메뉴의 RibbonType 속성을 클릭하고 다음 표에 설명된 리본 ID를 선택합니다.
리본 ID |
프로젝트를 실행할 때 리본 메뉴를 표시할 창 |
---|---|
Microsoft.InfoPath.Designer |
디자인 모드에서 열리는 양식 템플릿을 표시하는 창 |
Microsoft.InfoPath.Editor |
양식 템플릿을 기반으로 하는 양식을 표시하는 창 |
Microsoft.InfoPath.PrintPreview |
인쇄 미리 보기 창 |
프로젝트에 리본 메뉴를 둘 이상 추가할 수 있습니다.둘 이상의 리본 메뉴가 하나의 리본 ID를 공유하는 경우 프로젝트의 ThisAddin 클래스에서 CreateRibbonExtensibilityObject 메서드를 재정의하여 런타임에 표시할 리본 메뉴를 지정합니다.자세한 내용은 리본 개요을 참조하십시오.
리본 XML을 사용하여 리본 메뉴 유형 지정
리본(XML) 항목을 사용하는 경우 IRibbonExtensibility.GetCustomUI 메서드의 ribbonID 매개 변수 값을 확인하고 적절한 리본 메뉴를 반환합니다.
IRibbonExtensibility.GetCustomUI 메서드는 Visual Studio에 의해 리본 코드 파일에 자동으로 생성됩니다.ribbonID 매개 변수는 열리는 InfoPath 창의 유형을 식별하는 문자열입니다.
다음 코드 예제에서는 디자인 모드에서 양식 템플릿을 표시하는 창에만 사용자 지정 리본 메뉴를 표시하는 방법을 보여 줍니다.표시할 리본 메뉴는 리본 클래스에 생성되는 GetResourceText() 메서드에서 지정됩니다.리본 클래스에 대한 자세한 내용은 리본 XML을 참조하십시오.
Public Function GetCustomUI(ByVal ribbonID As String) As String Implements Office.IRibbonExtensibility.GetCustomUI
Dim ribbonXML As String = String.Empty
If ribbonID = "Microsoft.InfoPath.Designer" Then
ribbonXML = GetResourceText("MyInfoPathProject.Ribbon.xml")
End If
Return ribbonXML
End Function
public string GetCustomUI(string ribbonID)
{
string ribbonXML = String.Empty;
if (ribbonID == "Microsoft.InfoPath.Designer")
{
ribbonXML = GetResourceText("MyInfoPathProject.Ribbon.xml");
}
return ribbonXML;
}