다음을 통해 공유


FormEvents.Save 이벤트

사용자 인터페이스에서 저장 또는 다른 이름으로 저장 명령을 사용할 경우 또는 SaveSaveAs 메서드를 사용할 경우 발생합니다.

네임스페이스:  Microsoft.Office.InfoPath
어셈블리:  Microsoft.Office.InfoPath(Microsoft.Office.InfoPath.dll)

구문

‘선언
Public MustOverride Event Save As SaveEventHandler
‘사용 방법
Dim instance As FormEvents
Dim handler As SaveEventHandler

AddHandler instance.Save, handler
public abstract event SaveEventHandler Save

예외

예외 조건
InvalidOperationException

개발자가 InternalStartup 메서드가 아닌 다른 위치의 이벤트를 바인딩하려고 했습니다.

주의

중요

Save 이벤트는 양식 코드에서 개발자가 인스턴스화하지 않습니다. Microsoft InfoPath 2010 디자인 모드 사용자 인터페이스에서 양식 수준 이벤트에 대해서만 이벤트 처리기를 추가해야 합니다. 디자인 모드 사용자 인터페이스에서 양식 서식 파일에 이벤트 처리기를 추가하면 InfoPath에서 EventManager 클래스와 FormEvents 클래스의 멤버로 양식 코드 파일의 InternalStartup 메서드에서 코드를 생성하여 이벤트를 해당 이벤트 처리기에 바인딩합니다. InfoPath 디자인 모드에서 이벤트 처리기를 추가하는 방법에 대한 자세한 내용은 방법: 이벤트 처리기 추가를 참조하십시오.

Save 이벤트는 양식 서식 파일에서 양식 옵션 대화 상자의 사용자 지정 코드를 사용하여 저장 옵션을 설정한 경우에만 발생합니다.

Save 이벤트는 SaveEventHandler 대리자를 사용하여 바인딩됩니다.

Save 이벤트는 SaveEventArgs 클래스의 CancelableArgs 속성을 사용하여 취소할 수 있습니다. Cancel 속성을 true로 설정하면 됩니다.

Save 이벤트에 대한 이벤트 처리기에 매개 변수로 전달되는 SaveEventArgs 개체는 양식의 파일 이름을 가져오고 저장 상태를 확인하고 저장 작업을 수행하는 데 사용되는 속성과 메서드를 제공합니다.

이 형식 또는 멤버는 Microsoft InfoPath Filer에서 연 양식에서 실행되는 코드에서만 액세스할 수 있습니다.

다음 예제에서는 Save 이벤트에 대한 이벤트 처리기에서 Field2가 비어 있는지 여부를 확인하며, 비어 있지 않은 경우에는 저장 작업을 수행하고, 비어 있는 경우에는 메시지를 표시하고 저장 작업을 취소합니다.

public void FormEvents_Save(object sender, SaveEventArgs e)
{
   // Check to see if Field2 is empty.
   XPathNavigator reqField = 
      CreateNavigator().SelectSingleNode("/my:myFields/my:field2", 
      NamespaceManager);
   if(reqField.ToString() == "")
   {
      MessageBox.Show("Field2 is empty.\nYou cannot save the form.");
      e.CancelableArg.Cancel = true;
   }
   else
   {
   // The Dirty property will be set to false if save is successful.
      e.PerformSaveOperation();
      e.CancelableArgs.Cancel = false;
   }
}
Public Sub FormEvents_Save(ByVal sender As Object, _
   ByVal e As SaveEventArgs)
   ' Check to see if Field2 is empty.
   Dim reqField as XPathNavigator = 
      CreateNavigator().SelectSingleNode("/my:myFields/my:field2", _
      NamespaceManager)
   If(reqField.ToString() = "") Then
      MessageBox.Show("Field2 is empty" & vbNewLine & _
         "You cannot save the form.")
      e.CancelableArgs.Cancel = True
   Else
   ' The Dirty property will be set to false if save is successful.
   e.PerformSaveOperation()
   e.CancelableArgs.Cancel = False
   End If
End Sub

참고 항목

참조

FormEvents 클래스

FormEvents 멤버

Microsoft.Office.InfoPath 네임스페이스