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
例外処理
例外の種類 | 条件 |
---|---|
開発者は、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