editor de c # WYSIWYG mediante navegador web y RichTextBox
-
21-08-2019 - |
Pregunta
Estoy tratando de clavar togehter de un WYSIWYG de edición en C # siguiente algunos ejemplos de aquí y otro lugar.
Im usando un navegador web para el Estado de diseño del editor, pero tengo que ser capaz de cambiar a "html-view", así que utiliza un rico cuadro de texto, y mi enseñado era que la puede llevar el contenido del navegador web y establecer a la RTB, y al revés.
Funciona bien hasta que intento poner de nuevo el valor de la RTB en el navegador web, cuando me siento un "Este documento ha cambiado, ¿desea guardar los cambios" -alert y después de que el navegador web no aceptará nuevos contenidos.
Cualquier idea de qué hacer? O cualquier otra forma de manejar la solución después de im?
el código:
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";
}
}
}
}
Solución
Es una buena cosa que yo me he pasado demasiado tiempo mirando recientemente cómo el control WebBrowser y las cosas relacionadas con el trabajo: -)
Para hacer lo que quiere, en lugar de
webBrowserWYSIWYG.DocumentText = rtbWYSIWYG.Text;
DO
webBrowserWYSIWYG.Document.Write(rtbWYSIWYG.Text);
Espero que ayude. A mí me funciona.
Editar : Prueba esto:
webBrowserWYSIWYG.Document.OpenNew(true);
webBrowserWYSIWYG.Document.Write(rtbWYSIWYG.Text);