【问题标题】:Insert HTML TAG before and after selected text positionin C#在 C# 中的选定文本位置之前和之后插入 HTML TAG
【发布时间】:2021-10-28 15:06:33
【问题描述】:

今天我想在 C# win-forms 中创建类似简单的 HTML 编辑器的东西。它应该为richbox中的选定文本添加特定的标签。所以我的设计真的很简单。

我想选择例如最后一个字母“d”并添加标签,所以最终结果应该看起来像

所以我尝试使用像这样的替换功能

richTextBox1.Text = richTextBox1.Text.Replace(richTextBox1.SelectedText, $"<red>{richTextBox1.SelectedText}</red>");

但它将替换所有其他“d”字母。有什么想法我该怎么做?

【问题讨论】:

    标签: c# winforms richtextbox


    【解决方案1】:

    SelectedText 返回被选中的字符串。 所以,如果你选择“d”,它将只返回字符串“d”,所以它将替换所有内容。

    您可以通过执行以下操作仅替换选定的字符串

    var position = richTextBox1.SelectionStart;
    var replacedText = $"<red>{richTextBox1.SelectedText}</red>";
    richTextBox1.SelectedText = replacedText;
    richTextBox1.Select(position, replacedText.Length);
    richTextBox1.Focus();
    

    【讨论】:

    • 我完全期望这段代码能替换所有的SelectedText (即如果字母d 出现多次,它会替换所有的),但这并没有出现确实如此,这使它成为一个超级简单的解决方案。
    • 如何在 c# 的文本框中失去焦点时保持突出显示选定的文本,因为当我单击按钮时,突出显示选定的文本丢失。如何解决这个问题?
    猜你喜欢
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-08
    • 1970-01-01
    • 2011-07-09
    • 1970-01-01
    • 2016-08-24
    相关资源
    最近更新 更多