在C#中处理RichText的更好方法?
时间:2020-03-06 14:45:00 来源:igfitidea点击:
我需要创建一些带有标准"格式"的RichText并将其复制到剪贴板,例如粗体/斜体,缩进等。现在,我的操作方式似乎不太优雅……我正在创建RichTextBox项,并通过这种方式应用我的格式,如下所示:
RichTextBox rtb = new RichTextBox(); Font boldfont = new Font("Times New Roman", 10, FontStyle.Bold); rtb.Text = "sometext"; rtb.SelectAll() rtb.SelectionFont = boldfont; rtb.SelectionIndent = 12;
一定有更好的方法,但是经过几个小时的搜索,我无法提出更好的方法。有任何想法吗?
编辑:
RichTextBox(rtb)不在窗体上的任何位置显示/绘制。我只是使用该对象来格式化我的RichText。
解决方案
在执行所有操作之前,我们可能需要暂停Richtextbox的布局,以避免不必要的闪烁。这是我曾经犯过的常见错误之一,使它看起来"毫无意义"
我们可以创建一些实用程序扩展方法以使其更"优雅" :)
public static RichTextBox Set(this RichTextBox rtb, Font font, string text) { rtb.Text = text; rtb.SelectAll(); rtb.SelectionFont = font; rtb.SelectionIndent = 12; return rtb; }
并这样调用:
someRtb.Set(yourFont, "The Text").AndThenYouCanAddMoreAndCHainThem();
编辑:我现在看到我们甚至没有显示它。嗯,很有趣,对不起,我在提供非Rtb方式方面并没有太多帮助。
我认为技术是完成我们要完成的工作的好方法。我知道意思。。。这感觉有点"肮脏",因为我们将Winforms控件用于原本不打算使用的东西,但它确实有效。我已经使用这种技术很多年了。有兴趣了解其他人是否有可行的选择。
这个项目对我们有帮助吗?
http://www.codeproject.com/KB/string/nrtftree.aspx