将文本直接添加到控件text中会破坏RichTextBox中的内容
本文关键字:RichTextBox text 文本 添加 控件 | 更新日期: 2023-09-27 18:25:15
我正在制作一个小型文本编辑器,作为大型应用程序的一部分。所以我取了一个RichTextBox
,并添加了一个带有一些按钮的工具条。实际上,编辑部分一切都很好。我的应用程序要求每次单击按钮时在文本框中添加DateTime
戳。当我这样做时,整个标记都消失了。
所以我做的是:
private void button_click(object sender, EventArgs e)
{
richtextbox1.text += DateTime.Now.toString();
}
手册:
若要读取或设置多行文本框的文本,请使用"行"特性Text属性不返回有关应用于RichTextBox内容的格式的任何信息若要获取RTF代码,请使用RTF属性。
本文可能会对您有所帮助。
本文展示了如何扩展RichTextBox以允许将字符串附加到其RTF属性解决方案如下:
public void InsertTextAsRtf(string _text, Font _font,
RtfColor _textColor, RtfColor _backColor) {
StringBuilder _rtf = new StringBuilder();
// Append the RTF header
_rtf.Append(RTF_HEADER);
// Create the font table from the font passed in and append it to the
// RTF string
_rtf.Append(GetFontTable(_font));
// Create the color table from the colors passed in and append it to the
// RTF string
_rtf.Append(GetColorTable(_textColor, _backColor));
// Create the document area from the text to be added as RTF and append
// it to the RTF string.
_rtf.Append(GetDocumentArea(_text, _font));
this.SelectedRtf = _rtf.ToString();
}
和
public void AppendTextAsRtf(string _text, Font _font,
RtfColor _textColor, RtfColor _backColor) {
// Move carret to the end of the text
this.Select(this.TextLength, 0);
InsertTextAsRtf(_text, _font, _textColor, _backColor);
}