好的,我将把我的代码留在这里。
正如您从该代码中看到的那样,有一个按钮可以使文本变为粗体,但不是整个文本,只是用户接下来要编写的内容。
例如,当用户键入abc并单击按钮时,键入def:他得到:abc def。
但是,当使用: 时richtextbox2.text = richtextbox1.text;
,richtextbox2.text
值变为abcdef
,而不是abc def。
我想复制准确的文本,包括粗体文本。
谢谢。
好的,我将把我的代码留在这里。
正如您从该代码中看到的那样,有一个按钮可以使文本变为粗体,但不是整个文本,只是用户接下来要编写的内容。
例如,当用户键入abc并单击按钮时,键入def:他得到:abc def。
但是,当使用: 时richtextbox2.text = richtextbox1.text;
,richtextbox2.text
值变为abcdef
,而不是abc def。
我想复制准确的文本,包括粗体文本。
谢谢。
使用文本框的 RTF 属性而不是 Text 属性...
richtextbox2.Rtf = richtextbox1.Rtf
请奖励 essedbl,因为他应得的分数,但另一种可以与 RTF 盒子派上用场的方法是使用该SelectedText
属性...
具体来说,设置SelectionStart
为0SomeRTFControl.Text.Length
和SelectionLength
0。
然后,将SelectedText
属性设置为您想要的任何内容,并使用SelectionX
属性来格式化您要附加的文本的颜色、字体、大小等。
这不会导致视觉伪影/闪烁,但允许对您以编程方式添加到 RTF 的文本进行非常高水平的控制,并且还具有通常的强类型优势。
希望这可以帮助。
这些都不起作用:
this.rtxtReport.Rtf = "{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0 Tahoma;}}";
this.rtxtReport.Rtf += "{\\colortbl;\\red0\\green0\\blue0;\\red255\\green0\\blue0;}";
this.rtxtReport.Rtf += "{\\header\\pard\\qr\\plain\\f0\\chpgn\\par}";
this.rtxtReport.Rtf += "{\\pard{\\b ";
this.rtxtReport.Text += this.Ln + "> " + "VSTFS Report - " + System.DateTime.Now;
this.rtxtReport.Rtf += " \\b}\\par}";
到目前为止,我能够加粗文本的唯一方法是选择它,这是不切实际的,我正在从头开始创建文档,您必须选择要添加的文本,做到了,它做到了加粗该文本,但后来添加的所有其他内容都加粗!!... select(start, length) 上面有长度,所以很糟糕。
任何人实际上都可以通过使用 rtf 格式而不是选择文本来使 C# 变为粗体文本吗?