如何将粗体文本移动到另一个RichTextBox?

3

好的,我会在这里留下我的代码。

从那个代码中可以看出,有一个按钮可以让文本加粗,但不是整个文本,只是用户接下来要输入的内容。

例如,当用户键入abc,点击按钮,键入def时:他得到:abc def

但是,当使用richtextbox2.text = richtextbox1.text;richtextbox2.text的值变成了abcdef,而不是abc def

我想复制完全相同的文本,包括加粗的文本。

谢谢。


同时,当我发布一个问题时,它会显示 "def"(不带引号),这会使文本变成斜体,请将其视为粗体文本。 :) - Foresp
它在注释模式下工作。有趣的是,在“'s”之间有两个星号。 - Foresp
@user683512 如果您在格式设置和周围文本之间没有留出空格,有时文本格式会出现小问题。 :) - Basic
3个回答

2

使用文本框的RTF属性而不是Text属性...

richtextbox2.Rtf = richtextbox1.Rtf

它有效了,谢谢。我会在15分钟内将其标记为答案 :p(现在系统不允许我这样做^^) - Foresp

1
请授予essedbl奖励,因为他应该得到这些分数,但是另一种在处理RTF框时会派上用场的方法是使用SelectedText属性...
具体而言,将SelectionStart设置为SomeRTFControl.Text.Length,将SelectionLength设置为0。
然后,将SelectedText属性设置为您想要的内容,并使用SelectionX属性对添加的文本进行格式设置,如颜色、字体、大小等。
这不会导致可视化工件/闪烁,但可以对以编程方式添加到RTF中的文本进行非常高级别的控制,并提供通常的强类型优势。
希望这有所帮助。

0

这些都不起作用:

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#加粗文本吗?

通用的rtftextbox在\ansi之后覆盖了Rtf代码!! ...所以你必须使用选择,不能从头开始编写Rtf代码。现在选择正常工作。 - Tom Mallard

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