找回密码
 立即注册

QQ登录

只需一步,快速开始

ZenosZeng 讲师达人认证 悬赏达人认证

超级版主

299

主题

7874

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13131

活字格认证圣诞拼拼乐微信认证勋章讲师达人元老葡萄悬赏达人

ZenosZeng 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2011-12-18 16:04  /   查看:5883  /  回复:0
Text Control 中的域可以与MS Word中的域进行相互的导入和导出操作,Text Control中的ApplicationField类为获取/设置域的数据/参数提供了相应的公共接口。下面将结合MS Word中最常用的MERGEFIELD 和 FORMTEXTBOX功能来讲解域相关的操作。

相应的源代码可以在TX Text Control.NET的安装目录中找到:
?        Samples\WinForms\VB.NET\ ApplicationFields
?        Samples\WinForms\CSharp\ ApplicationFields

(一)实现MERGEFIELD 类
        在MS Word和RTF文档中会经常用到合并域,通过合并域能在模板设计器中为文本域添加一些附加信息,例如:可以指定文本应该显示在文本域的前面还是后面,或者指定文本的显示格式。为了能够处理这些字段和相应的功能,示例程序中实现了三个不同的类:
?        MergeField
?        MergeFieldCollection
?        CollectionSync
        MergeField类继承与TextField,并扩展了相应功能。通过MergeField可以得到该类所处理的ApplicationField的引用。此外,MergeField包含下面的这些属性:
?        TextFormat
?        TextBefore
?        TextAfter
?        Mapped
?        MergeFieldName
?        PreserveFormatting
?        VerticalFormatting
当设置MergeField的TextBefore属性时,会相应地设置ApplicationField的Text属性,此外,新的设置会以一种合适的值保存在Parameters属性中。
        MergeFieldCollection是一个MergeField的集合类,它实现了标准集合类型的公共属性和方法。
        最后,需要实现TextControl和MergeFieldCollection集合中各个对象的同步。当ApplicationField集合改变时都需要进行同步操作。这个类型提供了两个重要的事件,用于监听TextControl中的变化:TextFieldCreated 和 TextFieldDeleted。
        启动示例程序之后,点击File/Load菜单加载示例文档,该文档包含很多合并域字段,将输入光标定位到一个存在的字段中,例如《COMPANY》字段:
图片1.1.png (26.06 KB, 下载次数: 4180)

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部