在 C# 的文本编辑字段中编辑 HTML

Edit HTML in text edit field in C#

我有一个带有 basic HTML 标签的文本字符串,例如 <b> <i> <ul> <ol> 标签。

现在我想将它 parsed 显示在 editable 文本框中,并允许用户以所见即所得的方式进行编辑。我如何在 C# 中实现?

现在我有一个 RichTextBox,但它在后台使用 RTF 标签而不是 HTML,所以我看到的不是格式化文本,而是 html 代码。

最简单的解决方案是使用 WebBrowser 控件,显示可编辑 div:

private void Form1_Load(object sender, EventArgs e)
{
    webBrowser1.DocumentText = @"
    <div contenteditable=""true"">
        This is a sample:
        <ul>
            <li>test</li>
            <li><b>test</b></li>
            <li><a href=""https://whosebug.com"">Whosebug</a></li>
        </ul>
    </ div >";
}

您还可以有一些工具栏按钮,用于设置文本粗体、斜体,或插入<ul>ol等命令。例如,以下命令使选择变为粗体:

webBrowser1.Document.ExecCommand("Bold", false, null);

或以下命令插入有序列表:

webBrowser1.Document.ExecCommand("InsertOrderedList", false, null);

您可能还想看看以下 post:

Windows Forms HTML Editor