【问题标题】:Coloring text in Rich textbox based on type of its font in C#根据 C# 中字体的类型为富文本框中的文本着色
【发布时间】:2016-06-30 18:49:58
【问题描述】:

我需要一些帮助,我需要根据字体类型为富文本框中的文本着色,例如如果一个字符串具有“Times new roman”,而另一个具有“comics font”,则两者都需要不同的颜色。任何一个都可以帮帮我,我试图找到一些解决方案,但其中大多数与基于字体的着色文本“NOT”有关。

【问题讨论】:

    标签: c# fonts colors


    【解决方案1】:

    现在正确理解您的问题后,解决方案如下:

    在窗体上创建了 RichTextBox 控件:

    rtb1

    以下代码应达到目的:

    // Coloring on the basis of font
    int boxLength = rtb1.TextLength;
    int i = 0;
    while (i < boxLength)
    {
        rtb1.Select(i, 1);
        switch (rtb1.SelectionFont.Name)
        {
            case "Courier New": rtb1.SelectionColor = Color.Red;
                break;
            case "Times New Roman": rtb1.SelectionColor = Color.Green;
                break;
            default: rtb1.SelectionColor = Color.Black;
                break;
        }
    
    
        i++;
    }
    

    测试:

    从 MS Word 中粘贴随机字体如下

    Before execution of code

    After execution of code

    这是需要的吗?

    【讨论】:

    • ,Aneja 感谢您的回复...它给了我一个解决问题的好主意谢谢...
    • @Tenzin 太棒了!!如果它解决了您的问题,请点赞。也选择作为您的答案
    • @Aaneja ---我的问题是从 1000 页文本中找到特定字体系列类型的文本,然后用新文本替换它们,您的解决方案很好,但花了很多时间所以.. ...任何想法如何使用正则表达式来解决它,例如使用正则表达式或其他快速方法查找我的字体类型...
    • @TenzinJinpa 你能解释一下这 1000 个页面是如何在表单上实现的吗?它是一个单一的 RichTextBox 吗?我想了解这个场景,以便我能想出一些更好的算法。
    • @Aaneja---我正在使用富文本框进行输入,现在我正在做的是 1)我正在更改我在富文本框中打开的大文本文件 2)文本没有使用 unicode 和所以我们需要将所有文本转换为 unicode 格式 3)我已成功将其转换为 unicode,但是 1000 页书或文本花费的时间太大...
    【解决方案2】:

    您的问题有点含糊,因为您没有提及要测试的位置。你可以点击这个链接obtaining font,它展示了如何在 JQuery 中获取字体,然后你可以用你想要的颜色装饰 css。

    【讨论】:

      猜你喜欢
      • 2011-09-17
      • 1970-01-01
      • 2013-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-13
      相关资源
      最近更新 更多