none
IHTMLTxtRange.execCommand не всегда работает RRS feed

  • Вопрос

  • Есть WebBrowser. Задача - зачеркнуть выделенное. Проблема в том, что в случае, если textRange начинается с символов \n\r, то зачеркнуть можно, а обратно нельзя. Это из-за того, что эти символы не зачеркиваются и WebBrowser пытается все ещё раз зачеркнуть. Такая же проблема и с <br>. Но проблему с <br> я смог решить. Для этого достаточно передвинуть начало на этот br и все будет хорошо:

    while (range.htmlText.StartsWith("<br", StringComparison.InvariantCultureIgnoreCase))
    {
          range.moveStart("character");
    }
    

    Но в случае со \n\r - у меня не получается передвинуть начало так же.

    Как можно обойти эту проблему?

    Зачеркивание делается так:

     

    IHTMLDocument2 doc = (IHTMLDocument2)webBrowser.Document.DomDocument;
    IHTMLTxtRange range = (IHTMLTxtRange) doc.selection.createRange();
    range.execCommand("StrikeThrough", false, null);
    

     

    20 апреля 2011 г. 11:33
    Отвечающий

Все ответы

  • Уважаемый пользователь!

    В вашей теме отсутствует активность в течение последних 5 дней. При отсутствии каких-либо действий в течение 2 последующих дней, тема будет переведена в разряд обсуждений. Вы можете возобновить дискуссию, просто оставив сообщение в данной теме


    Для связи [mail]
    25 апреля 2011 г. 21:10
  • Наверняка есть какое-то простое решение :(

    Рассмотрю любые варианты :)

    27 апреля 2011 г. 9:38
    Отвечающий
  • А если просто заменить все \n\r на \n или на <br/> - то верстка в webbrowser развалится?

    Также можно попробовать написать javascript для зачеркивания и вызывать его, но скорее всего результат будет такой же, т.к. там будут использоваться теже функции для зачеркивания и сдвига.


    Для связи [mail]
    28 апреля 2011 г. 8:00
  • Если заменять на <br>, то все поплывет, если на \n, то все что в теге <pre> поплывет.

     

    28 апреля 2011 г. 10:35
    Отвечающий