.NET文本框与用户添加字段

3
我想创建一个控件类,使用户能像正常文本框一样输入文本。但是,它应该具有“邮件合并字段”功能,使用户能够从列表中插入字段。稍后在填充时会识别此字段。例如:

您的订单由销售人员处理,并将于[date]发送。

在上面的示例中,用户键入“您的订单已由”并从字段列表中选择 sales_person。这个列表可能是另一个控件,如列表框,因此此控件类将具有类似于 insertField 方法的方法。
稍后,该字段将被填充,因此必须在代码中识别它。此外,用户还应能够保存和检索此短语及其字段。
这个 UI 很类似于在 MS Word 中构建邮件合并文档。
请问有人可以提供实现这一目标的建议和/或资源吗?我宁愿构建自己的控件,而不是使用第三方,但我需要指导。
非常感谢。

构建一个格式化文本的用户界面控件并不容易。 - paparazzo
这是一个Web控件还是WinForms控件? - Heather
这是一个WinForms控件。请注意,该控件的目的是允许将字段插入为占位符,该占位符将由来自数据库的数据填充。在其他方面,它将与文本框完全相同。谢谢。 - John Steed
1个回答

1
尝试使用System.Windows.Forms.RichTextBox,它将允许您通过使用Find()函数标记占位符,然后更改SelectionFontSelectionColorSelectionBackColor

谢谢Igal。除了在界面上直观地显示给用户这个词是一个占位符之外,占位符还需要通过代码进行标识,以便可以用数据替换它。例如,我想要实现类似于:myTextBox.field("sales_person").value = "Some Name"的效果。 - John Steed
定义一个字段占位符以唯一字符开头,例如@fieldname或任何其他标记系统,我多次使用%fieldname%,然后您可以简单地遍历整个文本并为用户定义的每个字段使用String.Replace。 - Igal Berezovsky
谢谢Igal。这给了我很多想法。 - John Steed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接