找回密码
 立即注册

QQ登录

只需一步,快速开始

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

超级版主

299

主题

7874

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13131

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

ZenosZeng 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-5-9 10:46  /   查看:7219  /  回复:1
在MS Word中提供了一种特殊的域类型,通过该类型的域和现实文档的页号和总页数,这些域可以插入到页眉或者页脚中,TX Text Control也支持这样的特殊域类型。
TX Text Control中通过PageNumberField来对当前页的页号提供支持,而文档的总页数被封装在ApplicationField类型中,PageNumberField的使用方法如下:
  1. TXTextControl.PageNumberField pageNumberField =
  2.   new TXTextControl.PageNumberField(1,
  3.   TXTextControl.NumberFormat.ArabicNumbers);

  4. TXTextControl.HeaderFooter newHeader =
  5.   textControl1.Sections.GetItem().HeadersAndFooters.GetItem(TXTextControl.HeaderFooterType.Header);
  6. newHeader.PageNumberFields.Add(pageNumberField);
复制代码
文档中每页的页号信息会自动更新,总页数信息需要通过当前文档的页数来动态设置,下面代码演示了如何动态更新页眉和页脚中显示的总页数信息:
  1. private void updateNumPagesField()
  2. {
  3.   // iterate through all sections
  4.   foreach (TXTextControl.Section curSection in textControl1.Sections)
  5.   {
  6.     // iterate through all headers and footers of the sections
  7.     foreach (TXTextControl.HeaderFooter curHeader in curSection.HeadersAndFooters)
  8.     {
  9.       // iterate through all application fields
  10.       foreach (TXTextControl.ApplicationField curField in curHeader.ApplicationFields)
  11.       {
  12.         // if NUMPAGES is found, update the text property
  13.         // with the current number of pages
  14.         if (curField.TypeName == "NUMPAGES")
  15.         {
  16.           curField.Text = textControl1.Pages.ToString();
  17.         }
  18.       }
  19.     }
  20.   }
  21. }
复制代码

png

png


源码:VS2010 + TX TextControl 17.0
page_number.zip (14.4 KB, 下载次数: 990)

1 个回复

倒序浏览
qinzhu_
初级会员   /  发表于:2012-8-15 18:02:00
沙发
可以了,3Q
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部