次の方法で共有


XmlEvent.Changing イベント

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

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

構文

'宣言
Public Event Changing As XmlChangingEventHandler
'使用
Dim instance As XmlEvent
Dim handler As XmlChangingEventHandler

AddHandler instance.Changing, handler
public abstract event XmlChangingEventHandler Changing

例外処理

例外の種類 条件

InvalidOperationException

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

InvalidOperationException

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

コメント

メモ重要 :

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

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

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

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

メモメモ :

Changing イベントの間はビューを切り替えないようにするのが最善の処理です。変更がまだ受け付けられていない状態で別のビューに切り替えると、エラーが発生します。

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

次の例では、field2 が変更されると、Changing イベントが発生し、FormErrorCollection クラスの Add メソッドを使用して、field1 に対する FormError オブジェクトをフォームの 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

関連項目

参照

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