XmlEvent.Changing 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在对表单的基础 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 进行更改时,将引发 Changing 事件,并使用 FormErrorFormErrorCollectionAdd(XPathNavigator, String, String, String) 类的 方法将 field1 的对象添加到窗体的 FormErrorCollection。
这会将一条错误消息与 field1 关联。 当用户将鼠标悬停在 field1 上时,作为 Add 方法的参数传递message
的字符串将显示在屏幕提示中。 当用户右键单击 field1 ,然后单击“完整错误说明”时,InfoPath 将显示完整的错误消息,包括作为 messageDetails
Add 方法的参数传递的字符串。
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
注解
重要提示: Changing 事件不应由开发人员在表单代码中实例化。 从设计模式用户界面向表单模板添加事件处理程序时,Microsoft InfoPath 将使用 EventManager 类和 类的成员XmlEvent在表单代码文件的 InternalStartup 方法中生成代码,以将文档级事件绑定到其事件处理程序。 有关如何在 InfoPath 设计模式下添加事件处理程序的信息,请参阅如何:添加事件处理程序。
Changing 事件是使用委托绑定的XmlChangingEventHandler。
此事件处理程序允许用户取消操作。
在 Changing 事件期间,表单的基础 XML 文档处于只读模式。 如果 XmlChangingEventArgs.CancelableArgs.Cancel 属性设置为 true,则 InfoPath 将拒绝所做的更改,并向用户显示一个消息框。 如果 Changing 事件的代码中发生了错误,则 InfoPath 将拒绝更改,并将数据还原到以前的状态。
注意:最好避免在 更改 事件期间切换视图;尚未接受更改,切换到另一个视图可能会导致错误。
可以通过 Microsoft InfoPath Filler 中打开的表单中运行的代码访问此类型或成员。