次の方法で共有


FormEvents.Loading イベント

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

名前空間: Microsoft.Office.InfoPath
アセンブリ: Microsoft.Office.InfoPath (microsoft.office.infopath.dll 内)

構文

'宣言
Public Event Loading As LoadingEventHandler
'使用
Dim instance As FormEvents
Dim handler As LoadingEventHandler

AddHandler instance.Loading, handler
public abstract event LoadingEventHandler Loading

例外処理

例外の種類 条件

InvalidOperationException

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

コメント

メモ重要 :

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

Loading イベントは、LoadingEventHandler 代理を使用してバインドされます。

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

フォーム テンプレートが、Microsoft InfoPath Forms Services 2007 に対して、または InfoPath Forms Services を実行する Office SharePoint Server 2007 上の適切に構成されたドキュメント ライブラリに対して展開されて、そこから開かれると、Loading イベントはセッションごとに 1 回だけ発生します。

SaveEventArgs クラスの CancelableArgs プロパティを使用して Cancel プロパティを true に設定することで、Loading イベントをキャンセルできます。

メモメモ :

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

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

Quit

DisableAutoUpdate

EnableAutoUpdate

ExecuteAction

Export

ForceUpdate

GetContextNodes

GetSelectedNodes

SelectNodes

SelectText

SwitchView

Close

MergeForm

New

Save

SaveAs

Submit

Print

NewFromFormTemplate

Close

TaskPanes

AdoSubmitConnection クラス、EmailSubmitConnection クラス、または FileSubmitConnection クラスのメンバに対する呼び出しは、Loading イベント ハンドラでは行うことができません。

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

次の例では、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

関連項目

参照

FormEvents クラス
FormEvents のメンバ
Microsoft.Office.InfoPath 名前空間