0

これが私の問題です。C# winforms アプリケーションに Web ブラウザーがあります。ロード後に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

「正当化」フラグを適用すると、選択範囲が含まれるブロックに適用されます。あなたの選択は個々のブロック要素ではないと思います。たとえば、適合のドキュメントには次のように正当化されます。

現在の選択が配置されているフォーマット ブロックを右揃えにします。

ドキュメントを参照してください。

于 2013-07-13T17:43:06.263 に答える