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";
        }
    }
}
}
¿Fue útil?

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);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top