Я пытаюсь объединить WYSIWYG-редактирование в С#, следуя некоторым примерам отсюда и из других мест.
Я использую веб-браузер для состояния дизайна редактора, но мне нужно иметь возможность переключаться на «html-просмотр», поэтому я использовал расширенное текстовое поле, и моя задача состояла в том, чтобы просто взять содержимое из веб-браузера и установить его в РТБ и наоборот.
Он работает нормально, пока я не попытаюсь вернуть значение из rtb в веб-браузер, затем я получаю предупреждение «Этот документ был изменен, вы хотите сохранить изменения», и после этого веб-браузер не будет принимать новый контент.
Любая идея, что делать? Или любой другой способ справиться с решением после него?
код:
namespace EmailAdmin
{
public partial class Form1 : Form
{
// global variables
private IHTMLDocument2 doc;
private int WYSIWYGviewState = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// initiate web browser to design mode
webBrowserWYSIWYG.DocumentText = "<html><body></body></html>";
doc = webBrowserWYSIWYG.Document.DomDocument as IHTMLDocument2;
doc.designMode = "On";
}
private void linkSwitchWYSIWYGview_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
// determins viewstate
// is design view
if (WYSIWYGviewState == 0)
{
// set html view
WYSIWYGviewState = 1;
rtbWYSIWYG.Visible = true;
// populates the texteditor with html
rtbWYSIWYG.Text = webBrowserWYSIWYG.DocumentText;
// change label text
linkSwitchWYSIWYGview.Text = "View Design";
}
// is html view
else if (WYSIWYGviewState == 1)
{
// set design view
WYSIWYGviewState = 0;
rtbWYSIWYG.Visible = false;
// populates the designer with html
webBrowserWYSIWYG.DocumentText = rtbWYSIWYG.Text;
// change label text
linkSwitchWYSIWYGview.Text = "View HTML";
}
}
}
}