次の方法で共有


_DataDOMEventSink_Event.OnValidate イベント

定義

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

public:
 event Microsoft::Office::Interop::InfoPath::SemiTrust::_DataDOMEventSink_OnValidateEventHandler ^ OnValidate;
event Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnValidateEventHandler OnValidate;
member this.OnValidate : Microsoft.Office.Interop.InfoPath.SemiTrust._DataDOMEventSink_OnValidateEventHandler 
Event OnValidate As _DataDOMEventSink_OnValidateEventHandler 

イベントの種類

次の例では、 オブジェクトの プロパティをSiteDataDOMEventObject使用して、ノードの値をチェックします。 データ検証が失敗した場合、メソッドを ReportError(Object, String, Boolean, String, Int32, String) 使用してカスタム エラーが作成されます。

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.<span class="label">OnValidate</span>)]
public void field1_<span class="label">OnValidate</span>(DataDOMEvent e)
{
 if (int.Parse(e.Site.text) &gt; 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) &lt; 0)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot be less than 0.", 
   false,
   "",
   2,
   "modeless");
 }
}

次の例では、 オブジェクトの プロパティをSiteDataDOMEventObject使用して、ノードの値をチェックします。 データ検証が失敗した場合、メソッドを ReportError(Object, String, Boolean, String, Int32, String) 使用してカスタム エラーが作成されます。

[InfoPathEventHandler(MatchPath="/my:myFields/my:field1", EventType=InfoPathEventType.<span class="label">OnValidate</span>)]
public void field1_<span class="label">OnValidate</span>(DataDOMEvent e)
{
 if (int.Parse(e.Site.text) &gt; 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) &lt; 0)
 {
  e.ReportError(
   e.Site, 
   "Invalid quantity. The total number of each type of block cannot be less than 0.", 
   false,
   "",
   2,
   "modeless");
 }
}

注釈

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

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

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

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

適用対象