방법: 런타임 환경을 확인하는 조건부 논리 작성

Application 클래스의 Environment 속성은 양식을 여는 데 사용된 런타임 환경(InfoPath, 웹 브라우저 또는 모바일 브라우저)을 확인할 수 있는 Environment 개체에 대한 참조를 가져옵니다.

양식을 실행 중인 런타임 환경 확인

Environment 클래스는 양식 서식 파일을 여는 데 사용된 편집 환경을 확인할 수 있는 IsBrowserIsMobile 속성을 제공합니다. 두 속성이 모두 false를 반환하면 양식 서식 파일이 Microsoft InfoPath 2010 편집기에서 열린 것입니다. 두 속성 중 하나가 true를 반환한다면 양식 서식 파일은 해당 속성의 프로그램에서 InfoPath Forms Services를 실행하는 Microsoft SharePoint Server 2010의 적절하게 구성된 문서 라이브러리, 즉 웹 브라우저(IsBrowser 속성) 또는 모바일 브라우저(IsMobile 속성)에서 열린 것입니다.

다음 예제에서 양식을 브라우저나 모바일 브라우저에서 여는 경우 텍스트 상자 컨트롤에 바인딩된 field1의 값이 양식을 연 런타임 환경을 나타내는 문자열로 설정됩니다. InfoPath에서 양식을 열면 System.Windows.Forms.MessageBox.Show 메서드가 메시지 상자를 표시하는 데 사용됩니다. 브라우저에서 양식을 실행하는 경우에는 이 메서드를 사용할 수 없습니다.

중요

다음 코드 예제에 대한 양식 서식 파일을 만드는 경우 Backstage 보기의 새로 만들기 탭에서 새 양식 서식 파일을 선택합니다. 또는 양식 옵션 대화 상자의 호환성 범주에 있는 양식 유형 드롭다운 목록에서 웹 브라우저 양식을 선택할 수 있습니다. MessageBox 클래스를 지원하려면 Microsoft Visual Studio Tools for Applications에 있는 참조 추가 대화 상자의 .NET 탭에서 System.Windows.Forms에 대한 참조를 추가한 후 양식 코드 모듈의 선언 섹션에 System.Windows.Forms에 대한 using 또는 Imports 지시문을 추가합니다.

if(this.Application.Environment.IsBrowser)
{
   CreateNavigator().SelectSingleNode(
      "/my:myFields/my:field1", NamespaceManager).
      SetValue("Running in a browser.");
}
else if (this.Application.Environment.IsMobile)
{
   CreateNavigator().SelectSingleNode(
      "/my:myFields/my:field1", NamespaceManager).
      SetValue("Running in a mobile browser.");
}
else
{
   MessageBox.Show("This form is running in the InfoPath editor.");
}
If (Me.Application.Environment.IsBrowser) Then
   CreateNavigator().SelectSingleNode(_
      "/my:myFields/my:field1", NamespaceManager). _
      SetValue("Running in a browser.")
ElseIf (Me.Application.Environment.IsMobile) Then
   CreateNavigator().SelectSingleNode( _
      "/my:myFields/my:field1", NamespaceManager). _
      SetValue("Running in a mobile browser.")
Else
   MessageBox.Show("This form is running in the InfoPath editor.")
End If