【问题标题】:Rich Text Box how to highlight text block without select富文本框如何在不选择的情况下突出显示文本块
【发布时间】:2012-06-26 12:29:53
【问题描述】:

我需要在 RTB 中突出显示我的文本的特定部分,而不是在更改字体样式/颜色的意义上,而是在使用特定颜色进行块选择的意义上。这类似于 Visual Studio 在调试模式下突出显示一行的方式。

这里重要的是使用richtextbox.select函数实现上述功能WITHOUT,因为我拥有的richtextbox会定期更新,如果它在每次更新时调用select函数,用户将拖动文本时遇到困难,我不希望发生这种情况。

我在编辑 rtf 的过程中听说过一个解决方案,但我不完全确定如何执行此操作。如有任何帮助,我将不胜感激。

【问题讨论】:

    标签: c# .net winforms richtextbox


    【解决方案1】:

    编辑:刚刚意识到的问题是针对 winforms 的。以下答案适用于 WPF,而不是删除我会留下它,以防有人发现它有用。

    使用 TextRange(...) 获取文本并应用背景 例如:

    TextRange tr = new TextRange(position, nextPosition);
    var Br = new SolidColorBrush(Color.FromScRgb(alpha, 1f, 1f, 0f));
    tr.ApplyPropertyValue(TextElement.BackgroundProperty, Br);
    

    但也许您应该研究一下您的更新机制并提出更好的解决方案。

    【讨论】:

      【解决方案2】:

      这不使用富文本框的 Select() 函数。它只是在这些坐标with 中使用选择and updates the regionstart and end index 和适当的colour

          // change the co-ordinates as per the selection in the run-time 
          richTextBox1.Text = "Select some text";
          richTextBox1.SelectionStart = 0;
          richTextBox1.SelectionLength = 4;
          richTextBox1.SelectionBackColor = Color.LightBlue;
      

      Sele 将在Light Blue 中被选中用于上述代码。

      【讨论】:

      • 唉,如果你想为你的文本的几个部分着色,这个方法不起作用
      • 您可以将其作为新问题发布在 SO 上。
      猜你喜欢
      • 2012-06-26
      • 2012-08-19
      • 2014-02-09
      • 2019-10-19
      • 2022-12-31
      • 1970-01-01
      • 2013-01-23
      • 1970-01-01
      • 2012-07-19
      相关资源
      最近更新 更多