1

ここや他の場所からのいくつかの例に従って、C#でWYSIWYG編集をまとめようとしています。

エディターのデザイン状態に Web ブラウザーを使用していますが、「html-view」に切り替える必要があるため、リッチ テキスト ボックスを使用しました。私の考えは、Web ブラウザーからコンテンツを取得して、 rtb、およびその逆。

rtb から Web ブラウザーに値を戻そうとするまで正常に動作し、「このドキュメントが変更されました。変更を保存しますか」というアラートが表示され、その後、Web ブラウザーは新しいコンテンツを受け入れません。

どうすればいいですか?または、後でソリューションを処理する他の方法はありますか?

コード:

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";
        }
    }
}
}
4

1 に答える 1

2

最近、WebBrowser コントロールと関連するものがどのように機能するかを調べるのに非常に多くの時間を費やしたことは、あなたにとって良いことです :-)

代わりに、やりたいことをする

webBrowserWYSIWYG.DocumentText = rtbWYSIWYG.Text;

行う

webBrowserWYSIWYG.Document.Write(rtbWYSIWYG.Text);

それが役立つことを願っています。わたしにはできる。

編集:これを試してください:

webBrowserWYSIWYG.Document.OpenNew(true);
webBrowserWYSIWYG.Document.Write(rtbWYSIWYG.Text);
于 2009-07-02T10:06:41.797 に答える