次の方法で共有


XmlEvent.Validating イベント

フォームの基になっている XML ドキュメントに対する変更が受け付けられた後で、Changed イベントが発生する前に発生します。

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

構文

'宣言
Public MustOverride Event Validating As XmlValidatingEventHandler
'使用
Dim instance As XmlEvent
Dim handler As XmlValidatingEventHandler

AddHandler instance.Validating, handler
public abstract event XmlValidatingEventHandler Validating

例外

例外 条件
InvalidOperationException

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

InvalidOperationException

開発者は、ノードまたはグループを指定している 1 つの XPath 式に対して、複数のデリゲートを追加しようとしました。このイベントに対して追加できるデリゲートは、ノードまたはグループに対する 1 つの XPath 式について 1 つだけです。

InvalidOperationException

開発者は、セカンダリ データ ソースのノードにイベントをバインドしようとしました。このイベントは、セカンダリ データ ソースに対してはサポートされていません。

解説

重要

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

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

このイベント ハンドラーでは、ユーザーが操作を取り消すことはできません。

Validate イベントの間に、フォームの基になっている XML ドキュメントは読み取り専用のモードに設定されます。

Validate イベントは、通常、新しいエラーの追加や既存のエラーの削除など、エラーの処理と FormErrorCollection コレクションの処理のために使用されます。

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

次の例では、変更が field9 に対して受け付けられた後、Validating イベントが発生し、field6 と関連付けられた FormError オブジェクトが、Add メソッドを使用してフォームの FormErrorCollection に追加されます。

これにより、エラー メッセージと field6 が関連付けられます。Add メソッドの message パラメーターとして渡される文字列は、ユーザーが field6 をポイントするとヒントに表示されます。ユーザーが field6 を右クリックして [エラーの詳細情報] をクリックすると、Add メソッドの messageDetails パラメーターとして渡される文字列を含む完全なエラー メッセージが表示されます。

public void field9_Validating(object sender, XmlValidatingEventArgs e)
{
   XPathNavigator errNode = 
      this.CreateNavigator().SelectSingleNode("/my:myFields/my:field6", 
      NamespaceManager);

   this.Errors.Add(errNode, "Field9Validating", 
      "Field9 was validated.", 
      "Field9 was validated and an error was assocated with Field6.");
}
Public Sub field9_Validating(ByVal sender As Object, _
   ByVal e As XmlValidatingEventArgs )
   Dim errNode As XPathNavigator = _
      Me.CreateNavigator().SelectSingleNode("/my:myFields/my:field6", _
      NamespaceManager)

   Me.Errors.Add(errNode, "Field9Validating", _
      "Field9 was validated.", _
      "Field9 was validated and an error was associated with Field6.")
End Sub

関連項目

参照

XmlEvent クラス

XmlEvent メンバー

Microsoft.Office.InfoPath 名前空間