다음을 통해 공유


방법: InfoPath 2003 개체 모델을 사용하여 경고 및 대화 상자 표시

InfoPath 2003 개체 모델을 사용하는 양식 서식 파일의 기능을 확장하도록 코드를 작성하는 경우 대화 상자를 통해 사용자에게 정보를 제공하는 것이 유용합니다. InfoPath에서 UIObject 인터페이스의 메서드를 사용하면 대화 상자 및 관련 사용자 인터페이스 요소를 프로그래밍 방식으로 표시할 수 있습니다.

UIObject 인터페이스 개요

UIObject 인터페이스는 InfoPath 사용자가 양식에 데이터를 입력할 때 여러 유형의 대화 상자를 표시하기 위해 양식 개발자가 사용할 수 있는 다음과 같은 메서드를 제공합니다.

이름 설명

Alert

지정된 메시지 문자열이 들어 있는 간단한 메시지 상자를 표시합니다. 사용자의 입력이 필요 없고 메시지만 표시해야 할 때 이 메서드를 사용해야 합니다. 확인 단추를 클릭하면 표시된 대화 상자가 닫힙니다.

Confirm

사용자가 입력할 수 있도록 단추가 포함된 메시지 상자를 표시합니다. 반환되는 값은 XdConfirmChoice 열거 상수 중 하나입니다.

SetSaveAsDialogFileName

다른 이름으로 저장 대화 상자에서 양식의 기본 파일 이름을 설정합니다.

SetSaveAsDialogLocation

다른 이름으로 저장 대화 상자를 열 때 탐색을 시작할 초기 위치를 설정합니다.

ShowMailItem

메시지에 첨부되어 현재 열려 있는 양식을 사용하여 기본 전자 메일 응용 프로그램에서 새 전자 메일 메시지를 만듭니다.

ShowModalDialog

지정된 .html 파일과 위치 인수를 기반으로 모달 대화 상자를 표시합니다. 사용자에게 간단한 메시지를 두 개 이상 표시하고 Confirm 메서드를 통해 표시되는 예 | 아니요 | 취소 단추에서 제공하는 간단한 확인 이외에 사용자가 입력한 일부 데이터를 되돌려야 할 경우에는 이 메서드를 사용해야 합니다.

ShowSignatureDialog

기본 제공 디지털 서명 대화 상자를 표시합니다.

UIObject 인터페이스 사용

UIObject 인터페이스는 양식 코드 클래스의 _Startup 메서드에서 초기화된 thisXDocument 변수를 통해 액세스하는 XDocument 인터페이스의 UI 속성을 통해 액세스합니다. 다음 예제에서는 UIObject 인터페이스의 ShowMailItemAlert 메서드를 사용하는 방법을 보여 줍니다.

thisXDocument.UI.ShowMailItem("someone@example.com","", "", 
   "Updated Form", "Here is the updated form that you requested.");

thisXDocument.UI.Alert("The e-mail message has been created.");
thisXDocument.UI.ShowMailItem("someone@example.com", "", "", _
   "Updated Form", "Here is the updated form that you requested.")

thisXDocument.UI.Alert("The e-mail message has been created.")

ShowModalDialog 메서드 사용

이 예제에서는 UIObject 인터페이스의 ShowModalDialog 메서드를 사용하여 show.html이라는 HTML 파일에 정의된 사용자 지정 대화 상자를 표시하는 방법을 보여 줍니다.

public void CTRL1_5_OnClick(DocActionEvent e)
{
   // Write your code here.
   thisXDocument.UI.ShowModalDialog(
      "show.html",(object)thisXDocument,200,450,50,50);
}
Public Sub CTRL1_5_OnClick(ByVal e As DocActionEvent)
   ' Write your code here.
   thisXDocument.UI.ShowModalDialog( _
      "show.html", _
      DirectCast(thisXDocument, Object), 200, 450, 50, 50)
End Sub

Visual C# 및 Visual Basic 예제는 모두 "show.html"이라는 HTML 파일을 사용하는데, 이 파일에는 ShowModalDialog 메서드를 통해 호출되는 대화 상자가 정의되어 있습니다. 이 HTML 파일에는 양식의 일부 데이터 및 사용자가 값을 입력할 텍스트 상자가 표시됩니다. 대화 상자를 닫으면 텍스트 상자의 값이 양식에 반환됩니다.

<HTML>
   <HEAD>
      <script language="JScript">
function BtnClick()
{
   xdocument = window.dialogArguments;
   myXml = xdocument.DOM.xml
   aForm = oForm.elements;
   aForm.textBox.value = myXml;
}
      </script>
   </HEAD>
   <BODY>
      <H1><FONT face="Arial">This is a modal dialog box</FONT> &nbsp;
      </H1>
      <BUTTON onclick="BtnClick()" id="BUTTON1" type="button">
         Get XML DOM
      </BUTTON>
      <FORM ID="oForm">
         <INPUT Type="text" name="textBox">
      </FORM>
   </BODY>
</HTML>
중요:

ShowModal 메서드를 실행하거나 미리 보려면 전체 신뢰가 필요합니다. 자세한 내용은 방법: 전체 신뢰가 필요한 관리 코드 양식 서식 파일 디버깅 및 미리 보기를 참고하십시오.

대화 상자에 Windows Form 사용

HTML 파일을 사용하여 대화 상자에 내용을 표시하는 대신 이전 예제와 같이 InfoPath 양식에서 Windows Form을 대화 상자로 표시할 수도 있습니다. 이 예제에서는 InfoPath 양식의 ShowDialog 단추를 사용하여 Windows Form을 사용자 지정 대화 상자로 표시하는 방법을 보여 줍니다. 이때 UIObject 인터페이스 또는 InfoPath 개체 모델의 다른 구성원을 사용할 필요가 없습니다.

참고:

VSTA(Microsoft Visual Studio Tools for Applications) 를 사용하여 만든 InfoPath 양식 서식 파일 프로젝트에는 Windows Form을 만들거나 추가할 수 없습니다. Windows Form을 만들어 양식 서식 파일 프로젝트에 추가하려면 Microsoft Visual Studio 2005 Tools for the 2007 Microsoft Office System 과 Visual Studio 2005 또는 Visual Studio 2008 with Visual Studio Tools for Office 를 사용해야 합니다.

public void ShowDialog_OnClick(DocActionEvent e)
{
   // Instantiate and show Form1.
   Form1 myform = new Form1();
   myform.Show();
}
Public Sub ShowDialog_OnClick(ByVal e As DocActionEvent)
   ' Instantiate and show Form1.
   Dim MyForm As New Form1()
   MyForm.Show()
End Sub

Visual C# 및 Visual Basic 예제는 모두 "Form1"이라는 Windows Form을 사용하는데, 여기에는 InfoPath 양식의 ShowDialog 단추에 대한 이벤트 처리기를 통해 호출되는 대화 상자가 정의되어 있습니다. Form1을 InfoPath 프로젝트에 추가하려면 다음 절차를 사용합니다.

InfoPath 프로젝트에 Windows Form 추가

  1. 솔루션 탐색기에서 양식 코드 프로젝트(projectnameFormCode)를 마우스 오른쪽 단추로 클릭하고 추가를 가리킨 다음 Windows Form 추가를 클릭합니다.

  2. 새 항목 추가 대화 상자에서 양식 이름을 지정한 다음 열기를 클릭합니다.

  3. 도구 상자에서 단추 컨트롤을 양식으로 끌어 옵니다.

  4. 단추를 두 번 클릭한 후 단추의 이벤트 처리기에 다음 코드를 추가합니다.

   // Close the form.
   this.Close();
   ' Close the form.
   Me.Close()