【发布时间】:2026-01-26 14:45:02
【问题描述】:
我有一个用于创建 HTML 编辑器的 WebBrowser 控件,并且我需要能够在文档的当前选择中插入一个 HTML 字符串。
一般来说,如果选择是文本选择,我可以这样做将 HTML 粘贴到当前选择:
IHTMLSelectionObject selection = webBrowser.Document.DomDocument.selection;
// Assume that selection.type == "Text"
IHTMLTxtRange textRange = selection.createRange() as IHTMLTxtRange;
textRange.pasteHTML(myHtmlString);
但是,如果当前选择是 ControlRange 选择,似乎没有任何直接的方法可以在该位置插入/粘贴 HTML。
例如:
// Assume that selection.type == "Control"
IHTMLControlRange ctrlRange = selection.createRange() as IHTMLControlRange;
// This throws an error, as IHTMLControlRange has no pasteHTML method
ctrlRange.pasteHTML(myHtmlString);
我知道我可以使用 HtmlElement.InsertAdjacentElement 方法在另一个元素之前或之后插入一个元素,但这是非常有限的,因为有时我需要能够插入原始 HTML,而不是需要创建一个 HtmlElement 对象首先为它。
有什么方法可以将 HTML 字符串粘贴/插入到插入符号位置或 ControlRange 选择范围内?
【问题讨论】:
标签: c# .net wpf webbrowser-control