0

这是我的问题。我的 c# winforms 应用程序中有一个网络浏览器。我正在以设计模式在其中加载一个 html 文件,以便在加载后编辑 html。加载 html 后,我正在选择文本并对其进行格式化。当我选择文本并在所选文本上执行剪切、复制、粘贴、撤消、重做、粗体、斜体、下划线命令操作时,它工作正常。但是,当我执行 justifyleft、justifyright、justifycenter、indent、outdent 操作时,整个页面都会被更改,而不仅仅是选定的文本。

下面是我用来从浏览器中选择范围的代码。

    private IHTMLTxtRange getRange(IHTMLSelectionObject selection)
    {
        if (selection != null)
        {
            IHTMLTxtRange range = selection.createRange() as IHTMLTxtRange;
            return range;
        }
        return null;
    }

    private void executeBrowserCommand(string command)
    {
        sRange = getRange(htmlDoc.selection);
        if (sRange != null && sRange.htmlText != "")
        {
            sRange.execCommand(command, false, null);
        }
    }

有什么建议为什么要在整个页面上执行操作而不是仅在选定的文本上执行?谢谢。

4

1 回答 1

0

当您应用“对齐”标志时,它们将应用于包含选择的块。我猜你的选择不是一个单独的块元素。例如 fit 的文档证明了状态:

右对齐当前选择所在的格式块。

请参阅文档

于 2013-07-13T17:43:06.263 回答