Ich versuche, eine WYSIWYG-Bearbeitung in C# zu hämmern, indem ich einige Beispiele von hier und anderen Orten befolge.C# WYSIWYG-Editor mit Webbrowser und richtextbox
Ich benutze einen Webbrowser für den Design-Zustand des Editors, aber ich muss in der Lage sein, zu "HTML-View" zu wechseln, so dass ich eine reiche Textbox verwendet habe, und meine Lehre war, einfach den Inhalt aus dem Webbrowser und setze es auf den rtb und umgekehrt.
Es funktioniert gut, bis ich versuche, den Wert von der Rtb in den Webbrowser, dann bekomme ich eine "Dieses Dokument hat sich geändert, möchten Sie die Änderungen speichern" -alert und danach wird der Webbrowser nicht akzeptieren neuer Inhalt.
Irgendeine Idee, was zu tun ist? Oder eine andere Möglichkeit, die Lösung im nach zu behandeln?
der Code:
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";
}
}
}
}
@ David Johnstone: Danke, es funktionierte! Immer noch das Problem damit .Document.Write(); fügt nur hinzu, ersetzt nicht, also wenn du mit "!" beginnst und zwischen den Ansichten hin und her wechseln, wird das Dokument mit 1 "wachsen!" jeder Schalter. Irgendwelche Gedanken? – Andreas
Ich löste es und wollte über das schreiben: webBrowserWYSIWYG.Document.OpenNew (true); Als ich sah, dass du die Antwort aktualisiert hast, nochmals danke David – Andreas