Condividi tramite


Evento FormEvents.Submit

Si verifica quando viene utilizzato il comando Invia dall'interfaccia utente oppure quando viene utilizzato il metodo Submit.

Spazio dei nomi: Microsoft.Office.InfoPath
Assembly: Microsoft.Office.InfoPath (in microsoft.office.infopath.dll)

Sintassi

Public Event Submit As SubmitEventHandler

Dim instance As FormEvents
Dim handler As SubmitEventHandler

AddHandler instance.Submit, handler
public abstract event SubmitEventHandler Submit

Eccezioni

Tipo eccezione Condizione

InvalidOperationException

Lo sviluppatore ha cercato di associare l'evento in una posizione diversa dal metodo InternalStartup.

Osservazioni

Importante:

Gli sviluppatori non devono creare un'istanza dell'evento Submit nel codice del modulo. È consigliabile aggiungere gestori eventi per eventi a livello di modulo solo dall'interfaccia utente in modalità progettazione di Microsoft Office InfoPath 2007. Quando si aggiunge un gestore eventi al modello di modulo dall'interfaccia utente in modalità progettazione, tramite InfoPath viene generato codice nel metodo InternalStartup del file di codice del modulo utilizzando la classe EventManager e il membro della classe FormEvents per associare l'evento al relativo gestore eventi. Per informazioni su come aggiungere gestori eventi in modalità progettazione di InfoPath, vedere Procedura: Aggiungere un gestore eventi.

L'evento Submit viene generato solo se è impostata l'opzione Esegui azione personalizzata tramite codice nella finestra di dialogo Opzioni invio del modello di modulo.

L'evento Submit viene associato utilizzando il delegato SubmitEventHandler.

L'evento Submit può essere annullato utilizzando la proprietà CancelableArgs della classe MergeEventArgs per impostare la proprietà Cancel su true.

Se il codice del gestore eventi utilizza la proprietà CancelableArgs per impostare le stringhe della proprietà Message o MessageDetails, ma la proprietà CancelableArgs.Cancel viene lasciata impostata sul valore predefinito false, verrà visualizzato un messaggio di esito positivo con il testo delle proprietà Message e MessageDetails. Questo messaggio avrà la precedenza sulle impostazioni Visualizza messaggi per esito positivo e negativo e In caso di esito positivo della finestra di dialogo Opzioni invio del modulo relative al messaggio personalizzato.

Analogamente, se il codice del gestore eventi imposta la stringa Message o MessageDetails e la proprietà CancelableArgs.Cancel su true, verrà visualizzato un messaggio di esito negativo con il testo delle proprietà Message e MessageDetails, che avrà la precedenza sulle impostazioni della finestra di dialogo Opzioni invio del modulo.

Se il codice del gestore eventi lascia entrambe le proprietà Message e MessageDetails impostate sul valore predefinito null, ma imposta la proprietà CancelableArgs.Cancel su true, l'operazione di invio verrà considerata non riuscita. La visualizzazione di un messaggio di esito negativo dipenderà dalle impostazioni definite nella finestra di dialogo Opzioni invio.

Le chiamate al metodo Quit della classe Application non possono essere eseguite nel gestore eventi Submit.

A questo tipo o membro può accedere solo il codice in esecuzione in moduli aperti in Microsoft Office InfoPath 2007 o in un browser.

Esempio

Nell'esempio seguente viene utilizzato il gestore eventi per l'evento Submit per impedire che il modulo venga inviato, se non è ancora stato salvato.

public void FormEvents_Submit(object sender, SubmitEventArgs e)
{
   if(this.Dirty || this.New)
      MessageBox.Show("Please save this form before submitting it.");
      e.CancelableArgs.Cancel = true;
   else
      e.CancelableArgs.Message = "Submit succeeded.";
}
Public Sub FormEvents_Submit(ByVal sender As Object, _
   ByVal e As SubmitEventArgs)
   If(Me.Dirty Or Me.New) Then
      MessageBox.Show("Please save this form before submitting it.")
      e.CancelableArgs.Cancel = True
   Else
      e.CancelableArgs.Message = "Submit succeeded."
   End If
End Sub

Vedere anche

Riferimenti

Classe FormEvents
Membri FormEvents
Spazio dei nomi Microsoft.Office.InfoPath