在 C# 中选定文本位置前后插入 HTML TAG

Insert HTML TAG before and after selected text positionin C#

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

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

所以我尝试使用像

这样的替换函数
richTextBox1.Text = richTextBox1.Text.Replace(richTextBox1.SelectedText, $"<red>{richTextBox1.SelectedText}</red>");

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

SelectedText returns selected 的字符串。 所以,如果你 select "d",它会 return 只有字符串 "d",所以它会替换所有内容。

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

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