1
我試圖錘擊一個所見即所得的編輯在C#下面的一些例子從這裏和其他地方。c#WYSIWYG編輯器使用瀏覽器和richtextbox
我使用web瀏覽器來編輯設計狀態,但我需要能夠切換到「html-view」,所以我使用了一個豐富的文本框,而我的目的只是從web瀏覽器中獲取內容,將其設置爲rtb,反之亦然。
它工作正常,直到我試圖把rtb的值放回網頁瀏覽器,然後我得到一個 「此文檔已更改,是否要保存更改」-alert,之後webbrowser將不會接受新的內容。
不知道該怎麼辦?或者其他任何方式來處理解決方案後?
代碼:
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";
}
}
}
}
@大衛·約翰斯通:謝謝,它的工作!仍然有這個問題.Document.Write();只添加,而不是替換,所以如果你開始寫「!」並在視圖之間來回切換,文檔將以1「!」增長每個開關。有什麼想法嗎? – Andreas 2009-07-02 11:02:07