C# 在RichTextBox中查找字体样式的字符索引

C# 在RichTextBox中查找字体样式的字符索引,c#,winforms,richtextbox,C#,Winforms,Richtextbox,我正在寻找一种在RichTextBox中查找不同字体样式的字符索引的有效方法。我有以下资料: for (var i = 0; i < index; i++) { _activeCopyBox.Select(i, 1); if (!linkFound && _activeCopyBox.SelectionFont.Underline) underLineFound = true; } 然而,这是非常缓慢的,因为它必须一次选择一个字母。我可以从Rft

我正在寻找一种在RichTextBox中查找不同字体样式的字符索引的有效方法。我有以下资料:

for (var i = 0; i < index; i++)
{
   _activeCopyBox.Select(i, 1);

   if (!linkFound && _activeCopyBox.SelectionFont.Underline)
      underLineFound = true;
}
然而,这是非常缓慢的,因为它必须一次选择一个字母。我可以从Rft中获取格式,但这样寻找字符的正确索引是很麻烦的

如果有人知道更好的方法,一定有一种我很想听到的方法


提前感谢。

我认为您需要.Rtf属性,它为您提供了基本的Rtf信息,包括所有特殊的标记,并最终在RichTextBox中加下划线和粗体,或以其他方式格式化信息

这里有一个指向RTF标记的链接,它可能会帮助您更高效地完成任何尝试:


搜索“下划线”和“粗体”,您将看到它是如何工作的。很可能需要使用正则表达式来快速高效地获取所需信息。

Regex对于计算字体样式非常可靠。查找确切的字符索引是有问题的,因为您必须将RTF转换为纯文本。