找回密码
 立即注册

QQ登录

只需一步,快速开始

mindrayguowei

中级会员

122

主题

274

帖子

986

积分

中级会员

积分
986

活字格认证

QQ
mindrayguowei
中级会员   /  发表于:2016-2-26 13:34  /   查看:4769  /  回复:5
业务逻辑是这样的, TX模板里面要加一个标记, 名字叫"临时报告".  要求在模板里面设置好字体和颜色, 然后在代码里面, 这个标记必须可以被识别, 根据逻辑显示或者隐藏这个标记.

那么我现在有两种做法
1.  插入一个 MergeField类型的控件, 在程序里面被识别到, 设置Text为"临时报告", 并且设置字体和颜色. 可以控制显示/隐藏  (我不推荐这种做法)
2  在模板上写上"临时报告"的文本, 设置好字体和颜色,  那么现在的问题就是如何识别这个标记并设置显示隐藏.  (推荐这种做法)

5 个回复

倒序浏览
gw0506
超级版主   /  发表于:2016-2-26 15:28:00
沙发
我觉得第一个就听,为什么不推荐呢?

第二个如果就是个text,那你确实没法设置显示和隐藏。在代码里也不好操作,你必须用selection去找它。
回复 使用道具 举报
mindrayguowei
中级会员   /  发表于:2016-2-29 09:21:00
板凳
如果第二种方式不行, 第一种方式也可以的.
那么问题就是, 如何给MergeField设置字体和颜色?
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-2-29 12:34:00
地板
用TextField就可以。
  1.         private TextField _newField = new TextField("临时报告");
  2.         
  3.         private void button1_Click(object sender, EventArgs e)
  4.         {
  5.             
  6.             textControl1.TextFields.Add(_newField);
  7.             this.textControl1.Selection.Start = _newField.Start - 1;
  8.             this.textControl1.Selection.Length = _newField.Text.Length;
  9.             this.textControl1.Selection.ForeColor = Color.Red;
  10.         }
  11.         private void button2_Click(object sender, EventArgs e)
  12.         {
  13.             textControl1.TextFields.Remove(_newField);
  14.         }
复制代码
回复 使用道具 举报
mindrayguowei
中级会员   /  发表于:2016-2-29 15:50:00
5#
问题解决了, 还是用MergeField了, 不过用楼上设置颜色的方法
回复 使用道具 举报
gw0506
超级版主   /  发表于:2016-2-29 18:20:00
6#
啊,那太好了。解决了就好。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部