gpt4 book ai didi

c# - RichTextBox 控件仅使用第一种格式

转载 作者:太空宇宙 更新时间:2023-11-03 13:06:01 25 4
gpt4 key购买 nike

我正在使用 Visual Studio 10、.NET Framework 4 并正在为文本输入创建富文本框控件。我仅通过编写

来格式化文本
*RichTextBox*.SelectionFont = new Font(currentFontFamily, currentFontSize, currentFontStyle);

方法。

当我现在通过 RichTextBox.Rtf 属性访问 Rtf 格式的字符串时,它可以工作,但只包含第一个格式。

例如:

你好世界

结果:

{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Verdana;}}
{\colortbl ;\red0\green0\blue0;}
\viewkind4\uc1\pard\cf1\b\f0\fs18 Hello World\par
}

实际上是Hello World

这对任何事情都是一样的。字体、大小、颜色、格式等。谁能帮忙??

最佳答案

这可能是因为属性 SelectionStart 和 SelectionLength 无效。如果您通过这些属性明确限制选择,则 RTF 输出将如预期的那样:

richTextBox1.Text = "Hello World";

// limit selection
richTextBox1.SelectionStart = 0;
richTextBox1.SelectionLength = 5;

richTextBox1.SelectionFont = new Font("Tahoma", 12, FontStyle.Bold);

MessageBox.Show(richTextBox1.Rtf);

成为

{\rtf1\ansi\deff0{\fonttbl{\f0\fnil\fcharset0 Tahoma;}{\f1\fnil\fcharset0 Microsoft Sans Serif;}}
\viewkind4\uc1\pard\lang1031\b\f0\fs24 Hello\b0\f1\fs17 World\par
}

编辑:

正如提问者在下面提到的,问题的真正原因是对 TrimEnd() 的调用:

richTextBox1.Text.TrimEnd()

一旦他删除它,一切都会按预期进行。

关于c# - RichTextBox 控件仅使用第一种格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30783817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com