Editor WYSIWYG c # Utilizzo del browser web e RichTextBox
-
21-08-2019 - |
Domanda
Nel tentativo di martello togehter un WYSIWYG-edit in C # seguito alcuni esempi da qui e l'altro posto.
Im usando un browser web per lo stato di progettazione del redattore, ma ho bisogno di essere in grado di passare a "html-view", così ho usato un ricco casella di testo, e il mio tought stato per afferrare solo il contenuto dal browser web e impostare al RTB, e viceversa.
Funziona bene fino a quando cerco di rimettere il valore dal RTB nel browser web, quindi ho un "Questo documento è cambiato, vuoi salvare le modifiche" -alert e dopo che il browser web non accetterà nuovi contenuti.
Qualsiasi idea di cosa fare? O qualsiasi altro modo per gestire la soluzione im dopo?
il codice:
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";
}
}
}
}
Soluzione
E 'una buona cosa per voi che ho speso troppo tempo di recente guardando a come il controllo WebBrowser e cose correlate funzionano: -)
Per fare ciò che si vuole, invece di
webBrowserWYSIWYG.DocumentText = rtbWYSIWYG.Text;
do
webBrowserWYSIWYG.Document.Write(rtbWYSIWYG.Text);
Mi auguro che aiuta. Funziona per me.
Modifica : Prova questo:
webBrowserWYSIWYG.Document.OpenNew(true);
webBrowserWYSIWYG.Document.Write(rtbWYSIWYG.Text);