次の方法で共有


_DataDOMEventSink_Event.OnValidate イベント

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

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

構文

'宣言
Event OnValidate As _DataDOMEventSink_OnValidateEventHandler
'使用
Dim instance As _DataDOMEventSink_Event
Dim handler As _DataDOMEventSink_OnValidateEventHandler

AddHandler instance.OnValidate, handler
event _DataDOMEventSink_OnValidateEventHandler OnValidate

コメント

このイベント ハンドラでは、ユーザーが操作をキャンセルすることはできません。

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

一般に、OnValidate イベントは、新しいエラーの追加や既存のエラーの削除など、エラーの処理や ErrorsCollection コレクションの操作を行うために使用されます。

メモメモ :

場合によっては、フォームの基になっている XML ドキュメントの変更に関係するイベントが複数回発生する可能性があります。たとえば、既存のデータが変更されると、挿入と削除の操作が発生します。

次の例では、DataDOMEventObject オブジェクトの Site プロパティを使用して、ノードの値を確認します。データの検証に失敗した場合は、ReportError メソッドを使用して、カスタム エラーを作成します。

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.OnValidate)]
public void field1_OnValidate(DataDOMEvent e)
{
 if (int.Parse(e.Site.text) > 50)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot exceed 50.", 
   false,
   "",
   2,
   "modeless");
 }

 if (int.Parse(e.Site.text) < 0)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot be less than 0.", 
   false,
   "",
   2,
   "modeless");
 }
}

関連項目

参照

_DataDOMEventSink_Event インターフェイス
_DataDOMEventSink_Event のメンバ
Microsoft.Office.Interop.InfoPath.SemiTrust 名前空間