找回密码
 立即注册

QQ登录

只需一步,快速开始

mindrayguowei

中级会员

122

主题

274

帖子

986

积分

中级会员

积分
986

活字格认证

QQ
mindrayguowei
中级会员   /  发表于:2015-8-14 16:39  /   查看:6737  /  回复:5
模版里面有一个MergeField,

通过某一次鼠标双击事件把第一段文字显示在界面上。
现在把光标移动到这段文字的中间某个位置,再通过鼠标双击插入第二段文字到光标所在位置,该怎么做?

目前的代码只能在第一段文字的结尾追加第二段文字。

  1. public void SetFieldValue(string fieldName, string result, bool append = true)
  2.         {
  3.             foreach (TXTextControl.IFormattedText textPart in _textControl.TextParts)
  4.             {
  5.                 foreach (TXTextControl.ApplicationField appField in textPart.ApplicationFields)
  6.                 {
  7.                     if (appField.Parameters.Length > 0 && appField.Parameters[0].ToLower() == fieldName.ToLower())
  8.                     {
  9.                         appField.Text += result;
  10.                         return;
  11.                     }
  12.                 }
  13.             }
  14.         }
复制代码

5 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-8-17 14:17:00
沙发
回复 1楼mindrayguowei的帖子

需要通过 Selection.Load 方法进行加载,我使用 TextField 做了个demo,请测试:

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             TextField mf = new TextField();
  4.             mf.Text = "test";

  5.             this.textControl1.TextFields.Add(mf);

  6.             this.textControl1.TextFieldClicked += textControl1_TextFieldClicked;
  7.         }

  8.         void textControl1_TextFieldClicked(object sender, TextFieldEventArgs e)
  9.         {
  10.             string filename = "..\\..\\1.txt";
  11.             this.textControl1.Selection.Load(filename, StreamType.PlainText);
  12.         }
复制代码


看能否解决您的问题。
回复 使用道具 举报
mindrayguowei
中级会员   /  发表于:2015-8-18 10:39:00
板凳
可能是我的描述不够准确,你这段代码看起来和我要解决的问题没有关系。

我的工作场景是这样:

1. 加载模版到我的用户界面,这个模版会包含几个ApplicationField. 默认Text值为空.
2. 当用户点击界面上某个button (不是任何TextControl相关button,就是WinForm的button)之后,会有一段文字显示在ApplicationField所在的位置。
3. 用户编辑刚刚产生在ApplicationField位置的文字,比如换行,等等。
4.再次点击步骤2的button,   现在我只能把文字追加到上一段位子的结尾。 实际要求是要求插入到光标所在的位置。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-18 14:41:00
地板
回复 3楼mindrayguowei的帖子

能否请你把手机号码通过论坛短消息发送给我,我们电话沟通下。拨打贵公司座机一直无人接听。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-8-18 16:17:00
5#
回复 3楼mindrayguowei的帖子

通过电话沟通,可以通过 this.textControl1.Selection.Text 属性来设置选择位置文本。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-1 12:02:00
6#
回复 3楼mindrayguowei的帖子

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部