MergeField在程序里替换成内容后如何自动插入文字?
模版里面有一个MergeField,通过某一次鼠标双击事件把第一段文字显示在界面上。
现在把光标移动到这段文字的中间某个位置,再通过鼠标双击插入第二段文字到光标所在位置,该怎么做?
目前的代码只能在第一段文字的结尾追加第二段文字。
public void SetFieldValue(string fieldName, string result, bool append = true)
{
foreach (TXTextControl.IFormattedText textPart in _textControl.TextParts)
{
foreach (TXTextControl.ApplicationField appField in textPart.ApplicationFields)
{
if (appField.Parameters.Length > 0 && appField.Parameters.ToLower() == fieldName.ToLower())
{
appField.Text += result;
return;
}
}
}
} 回复 1楼mindrayguowei的帖子
需要通过 Selection.Load 方法进行加载,我使用 TextField 做了个demo,请测试:
private void Form1_Load(object sender, EventArgs e)
{
TextField mf = new TextField();
mf.Text = "test";
this.textControl1.TextFields.Add(mf);
this.textControl1.TextFieldClicked += textControl1_TextFieldClicked;
}
void textControl1_TextFieldClicked(object sender, TextFieldEventArgs e)
{
string filename = "..\\..\\1.txt";
this.textControl1.Selection.Load(filename, StreamType.PlainText);
}
看能否解决您的问题。 可能是我的描述不够准确,你这段代码看起来和我要解决的问题没有关系。
我的工作场景是这样:
1. 加载模版到我的用户界面,这个模版会包含几个ApplicationField. 默认Text值为空.
2. 当用户点击界面上某个button (不是任何TextControl相关button,就是WinForm的button)之后,会有一段文字显示在ApplicationField所在的位置。
3. 用户编辑刚刚产生在ApplicationField位置的文字,比如换行,等等。
4.再次点击步骤2的button, 现在我只能把文字追加到上一段位子的结尾。 实际要求是要求插入到光标所在的位置。 回复 3楼mindrayguowei的帖子
能否请你把手机号码通过论坛短消息发送给我,我们电话沟通下。拨打贵公司座机一直无人接听。 回复 3楼mindrayguowei的帖子
通过电话沟通,可以通过 this.textControl1.Selection.Text 属性来设置选择位置文本。 回复 3楼mindrayguowei的帖子
为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页:
[1]