Проблема с использованием элемента управления WebBrowser в качестве редактора - PullRequest
0 голосов
/ 04 мая 2010

В настоящее время я работаю над проектом, в котором я использую элемент управления WebBrowser в качестве редактора. У меня включен режим дизайна, и он, кажется, работает. У меня возникает проблема, когда я пытаюсь сохранить документ и загрузить другой, он всплывает «Этот документ был изменен». сообщение. То, что я пытаюсь сделать, так же просто, как это

if (frontPage)
{
    frontPage = false;
    frontContent = webEditor.DocumentText;
    webEditor.DocumentText = backContent;
}
else
{
    frontPage = true;
    backContent = webEditor.DocumentText;
    webEditor.DocumentText = frontContent;
}

Как я уже говорил, каждый раз, когда я ввожу какой-то текст и запускаю этот код, он просто выводит сообщение о том, что он был изменен и спрашивает, хочу ли я сохранить. Как я могу обойти это?

Ответы [ 7 ]

2 голосов
/ 17 декабря 2010

Вы должны создать следующую функцию:

void ChangeAllowWebBrowserDrop() { webBrowser.AllowWebBrowserDrop = !webBrowser.AllowWebBrowserDrop; }

Он должен вызываться каждый раз перед изменением DocumentText.

1 голос
/ 15 августа 2011

Вы должны создать следующую функцию:

void ChangeAllowWebBrowserDrop() {
    webBrowser.AllowWebBrowserDrop = !webBrowser.AllowWebBrowserDrop;
}

Он должен вызываться каждый раз перед изменением DocumentText.

1 голос
/ 10 ноября 2010

Вы можете установить

BodyHtml.  

Как это:

string newHTMLString="some html";
webBrowser1.Document.Body.InnerHtml = newHTMLString;

работал для меня.

0 голосов
/ 30 августа 2013

Я решил эту проблему так:

browser.Document.Write(string.Empty);  
browser.DocumentText="Your html code"; 

Это по этой ссылке: http://social.msdn.microsoft.com/Forums/vstudio/en-US/3a9c1965-8559-4972-95e1-da0e86cf87bb/webbrowser-strange-problem

0 голосов
/ 16 февраля 2012

Лучшее решение - написать пустую строку, прежде чем вы фактически назначите свой HTML-код: WebBrowser1.Document.Write (string.Empty);
WebBrowser1.DocumentText = "ваш код";

0 голосов
/ 04 мая 2010

Способ, которым Windows Forms загружает поток документов (используется свойством DocumentText), состоит в том, чтобы перейти к about: blank, который вызывает сообщение с измененным документом, а затем загрузить поток в свой обработчик событий DocumentComplete.

Поскольку у вас уже есть документ, вы можете пропустить навигацию и загрузить поток в существующий документ напрямую через его интерфейс IPersistStreamInit, как это делает Windows Forms в обработчике событий DocumentComplete.

0 голосов
/ 04 мая 2010

Попробуйте это webEditor.ScriptErrorsSuppressed = true;

Убедитесь, что вы отключили отладку скриптов в IE, если вы включили его.

...