次の方法で共有


FormEvents.Loading イベント

定義

フォーム テンプレートが読み込まれた後、ビューが初期化される前に発生します。

public:
 abstract event Microsoft::Office::InfoPath::LoadingEventHandler ^ Loading;
public abstract event Microsoft.Office.InfoPath.LoadingEventHandler Loading;
member this.Loading : Microsoft.Office.InfoPath.LoadingEventHandler 
Public MustOverride Custom Event Loading As LoadingEventHandler 

イベントの種類

例外

開発者は、InternalStartup メソッドとは異なる場所でイベントをバインドしようとしました。

次の例では、Loading イベントに対するイベント ハンドラーを使用して、フォームがデジタル署名されているかどうかを判別し、されていない場合は Date1 フィールドに現在の日付を設定しています。

public void FormEvents_Loading(object sender, LoadingEventArgs e)
{
   if (this.Signed)
   {
         e.CancelableArgs.Message = 
            "This form is digitally signed. Loading is cancelled.";
         e.CancelableArgs.Cancel = true;
   }

   XPathNavigator myDate = 
      CreateNavigator().SelectSingleNode("/my:myFields/my:date1",
      NamespaceManager);

   // Check for and delete xsi:nil="true" attribute.
   if (myDate.MoveToAttribute("nil", 
      "http://www.w3.org/2001/XMLSchema-instance"))
   {
      myDate.DeleteSelf();
   }

   myDate.SetValue(System.DateTime.Now.ToString("yyyy-MM-dd"));
}
Public Sub FormEvents_Loading(ByVal sender As Object, _
   ByVal e As LoadingEventArgs)
   If (Me.Signed)Then
         e.CancelableArgs.Message = 
            "This form is digitally signed. Loading is cancelled."
         e.CancelableArgs.Cancel = True
   End If

   Dim myDate As XPathNavigator = 
      CreateNavigator().SelectSingleNode("/my:myFields/my:date1",
      NamespaceManager)

   ' Check for and delete xsi:nil="true" attribute.
   If (myDate.MoveToAttribute("nil", 
      "http://www.w3.org/2001/XMLSchema-instance"))
      myDate.DeleteSelf();
   End If

   myDate.SetValue(System.DateTime.Now.ToString("yyyy-MM-dd"));
End Sub

注釈

重要: Loading イベントは、フォーム コードで開発者がインスタンス化することを意図したものではありません。 フォーム レベルのイベントのイベント ハンドラーは、Microsoft InfoPath デザイン モードのユーザー インターフェイスからのみ追加する必要があります。 デザイン モードのユーザー インターフェイスからフォーム テンプレートにイベント ハンドラーを追加すると、InfoPath は、 クラスと クラスのメンバーFormEventsを使用してEventManager、フォーム コード ファイルの InternalStartup メソッドでコードを生成し、イベントをイベント ハンドラーにバインドします。 InfoPath のデザイン モードでイベント ハンドラーを追加する方法の詳細については、「[方法] イベント ハンドラーを追加する方法」を参照してください。

Loading イベントは、デリゲートをLoadingEventHandler使用してバインドされます。

Loading イベントは、フォームが読み込まれる前、およびビューがレンダリングされる前に発生します。

InfoPath Forms Servicesを実行している SharePoint Server 2010 で適切に構成されたドキュメント ライブラリにフォーム テンプレートを展開して開いた場合、Loading イベントはセッションごとに 1 回だけ発生します。

クラスの プロパティを使用して Cancel プロパティSaveEventArgsCancelableArgstrue に設定することで、Loading イベントを取り消すことができます。

: Loading イベントが発生した場合、ビューは初期化されず、ビューに使用される XSL 変換 (XSLT) はまだ読み込まれません。 オブジェクトはXmlFormLoading イベントがXmlFormCollection発生するまでコレクションに追加されません。 ただし、XmlForm オブジェクトは Loading イベントの間でも使用できます。

次のメソッドとプロパティに対する呼び出しは、Loading イベント ハンドラーでは行うことができません。

Quit()

DisableAutoUpdate()

EnableAutoUpdate()

ExecuteAction(ActionType)

Export(String, ExportFormat)

ForceUpdate()

GetContextNodes(XPathNavigator)

GetSelectedNodes()

SelectNodes(XPathNavigator)

SelectText(XPathNavigator)

SwitchView(String)

Close()

MergeForm(String)

New

Save()

SaveAs(String)

Submit()

Print()

NewFromFormTemplate(String)

Close()

TaskPanes

、、または FileSubmitConnection クラスのAdoSubmitConnectionEmailSubmitConnectionメンバーへの呼び出しは、Loading イベント ハンドラーでは行えません。

この型またはメンバーには、Microsoft InfoPath Filler または Web ブラウザーで開いたフォームで実行されるコードからアクセスできます。

適用対象