次の方法で共有


XmlEvent.Changing イベント

定義

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

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

イベントの種類

例外

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

次の例では、field2 に変更を加えると、Change イベントが発生しFormErrorFormErrorCollection クラスのメソッドを使用して Add(XPathNavigator, String, String, String)field1 のオブジェクトがフォームの FormErrorCollection に追加されます。

これにより、エラー メッセージと field1 が関連付けられます。 Add メソッドのパラメーターとしてmessage渡された文字列は、ユーザーが field1 の上にマウス ポインターを置くと画面ヒントに表示されます。 ユーザーが field1 を右クリックし、[エラーの完全な説明] をクリックすると、Add メソッドのパラメーターとしてmessageDetails渡された文字列を含む完全なエラー メッセージが表示されます。

public void field2_Changing(object sender, XmlChangingEventArgs e)
{
   XPathNavigator errNode = 
      this.CreateNavigator().SelectSingleNode("/my:myFields/my:field1", 
      NamespaceManager);
   this.Errors.Add(errNode, "Field2Changing", 
      "The Changing event occurred for Field2.", 
      "Changes were made to Field2, but have not yet been accepted.");
}
Public Sub field2_Changing(ByVal sender As Object, _
   ByVal e As XmlChangingEventArgs)
   Dim errNode As XPathNavigator = Me.CreateNavigator(). _
      SelectSingleNode("/my:myFields/my:field1", NamespaceManager)
   Me.Errors.Add(errNode, "Field2Changing", _
      "The Changing event occurred for Field2.", _
      "Changes were made, but have not yet been accepted.")
End Sub

注釈

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

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

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

Changing イベントの間に、フォームの基になっている XML ドキュメントは読み取り専用のモードに設定されます。 XmlChangingEventArgs.CancelableArgs.Cancel プロパティが true に設定されている場合、InfoPath は行われた変更を元に戻し、ユーザーに対してメッセージ ボックスを表示します。 Changing イベントに対するコードでエラーが発生すると、InfoPath は変更を元に戻し、データを前の状態に戻します。

: 変更 中のイベントでは、ビューの切り替えを避けるのが最善です。変更はまだ受け入れられていないので、別のビューに切り替えるとエラーが発生する可能性があります。

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

適用対象