本主题介绍使用 Visual Studio 2008 向 Microsoft InfoPath 托管代码表单模板中添加事件处理程序的过程。 若要向表单模板中添加事件处理程序,需要先在 InfoPath Designer 中打开该表单模板,然后为要编写代码的事件选择适当的用户界面命令。 在 InfoPath Designer 中为事件选择命令后,焦点会自动切换到 Visual Studio 2008 代码编辑器中该事件的框架事件处理程序。
重要
[!重要信息] 应始终使用 InfoPath Designer 用户界面来添加事件处理程序。 使用用户界面添加事件处理程序会在表单模板项目的 FormCode.cs 或 FormCode.vb 文件的 InternalStartup 方法中生成事件绑定代码。 您不应自己创建 InternalStartup 方法或在其中添加其他任何代码。
为按钮控件的 Click 事件添加事件处理程序
在 InfoPath Designer 中打开表单模板,然后向该表单中添加一个“按钮”控件。
单击此按钮,然后在功能区的“属性”选项卡上单击“自定义代码”。
焦点将切换到 Visual Studio 2008 代码编辑器中 Clicked 事件的框架事件处理程序。
为域或组的 Changing、Validating 或 Changed 事件添加事件处理程序
在 InfoPath Designer 中打开表单模板。
右键单击绑定到字段或组的数据输入控件,例如“文本框”控件。
指向“编程”,然后单击要为其创建事件处理程序的事件。 焦点将切换到 Visual Studio 2012 代码编辑器中 Changing、Validating 或 Changed 事件的框架事件处理程序。
注意
如果表单模板的兼容性设置被设置为“Web 浏览器表单”,则无法使用为 Changing 事件创建事件处理程序的命令。 这是因为在使用 InfoPath Forms Services 的 Microsoft SharePoint Server 2010 上发布到文档库的表单模板的业务逻辑中不支持 Changing 事件。 若要为 Changing 事件创建事件处理程序,必须在 InfoPath Designer 中将兼容性设置更改为“InfoPath 编辑器”。 为此,请依次单击“文件”选项卡、“表单选项”和“兼容性”,然后将“表单类型”设置为“InfoPath 编辑器表单”。
为表单的 Loading、ViewSwitched、ContextChanged 和 Sign 事件添加事件处理程序
在 InfoPath Designer 中打开表单模板。
在功能区的“开发人员”选项卡上,单击要为其编写事件处理程序的表单事件。
焦点将切换到 Visual Studio 2012 代码编辑器中 加载、 ViewSwitched、 ContextChanged 或 Sign 事件的主干事件处理程序。
注意
如果表单模板的兼容性设置被设置为“Web 浏览器表单”,则无法使用为 ContextChanged 或 Sign 事件创建事件处理程序的命令。 这是因为在使用 InfoPath Forms Services 的 Microsoft SharePoint Server 2010 上发布到文档库的表单模板的业务逻辑中不支持这些事件。 若要为 ContextChanged 或 Sign 事件创建事件处理程序,必须在 InfoPath Designer 中将兼容性设置更改为“InfoPath 编辑器表单”。 为此,请依次单击“文件”选项卡、“表单选项”和“兼容性”,然后将“表单类型”设置为“InfoPath 编辑器表单”。
为表单的 Submit 事件添加事件处理程序
在 InfoPath Designer 中打开表单模板。
单击“文件”选项卡,在“信息”选项卡上单击“提交到”,然后单击“提交选项”。
单击“允许用户提交此表单”,单击“使用代码执行自定义操作”,然后单击“编辑代码”。
焦点将切换到 Visual Studio 2008 代码编辑器中 Submit 事件的框架事件处理程序。
为表单的 Save 事件添加事件处理程序
在 InfoPath Designer 中打开表单模板。
单击“文件”选项卡,然后单击“信息”选项卡上的“表单选项”。
单击“保存”类别,选中“使用自定义代码保存”复选框,然后单击“编辑”。
焦点将切换到 Visual Studio 2008 代码编辑器中 Save 事件的框架事件处理程序。
为表单的 VersionUpgrade 事件添加事件处理程序
在 InfoPath Designer 中打开表单模板。
单击“文件”选项卡,然后单击“信息”选项卡上的“表单选项”。
单击“版本控制”类别,在“更新现有表单”下拉框中选择“使用自定义事件”,然后单击“编辑”。
焦点将切换到 Visual Studio 2008 代码编辑器中 Save 事件的框架事件处理程序。
为表单的 Merge 事件添加事件处理程序
在 InfoPath Designer 中打开表单模板。
单击“文件”选项卡,然后单击“信息”选项卡上的“表单选项”。
单击“高级”类别,单击“启用表单合并”复选框,单击“使用自定义代码合并”复选框,然后单击“编辑”。
焦点将切换到 Visual Studio 2008 代码编辑器中 Merge 事件的框架事件处理程序。