はい、webBrowserコントロールの使用は、IE9ではなくIE8で正常に機能します。HTMLDocumentをDesignMode="On"からDesignMode="Off"に設定すると、WebBrowserからドキュメントが削除されるようです。私は自分の問題を示すこの例を作成しました。フォームには2つのボタンと1つのwebBrowserがあります。1つのボタンはwebBrowser.DocumentTextを実行し、もう1つのボタンはdocument.DesignMode="On"と"Off"を切り替えます。DesignModeボタンは「CheckOnClick」を使用します。あなたがそれが何をするのかを見ることができることを願っています。
これをIE8を搭載したマシンで実行すると、次に、DesignModeを切り替えても、webBrowser.Documentはそのまま残ります。これをIE9を搭載したマシンで実行すると、次に、DesignModeを「On」または「Off」に設定すると、webBrowserドキュメントが「」に変更されます。webBrowserがDesignMode = "On"にあり、DocumentTextを設定した場合、webBrowserはDesignMode="Off"になります。
IE9でwebBrowser.DocumentTextとDesignModeを同時に使用できるようにするために、この動作を回避する方法を見つけることができませんでした。IE8の動作は私にとっては機能しますが、IE9は機能しません。DocumentTextを設定して編集する方法を想像することはできません。
IE8の動作を元に戻すための設定または回避策はありますか?IE9の同じドキュメントでDocumentTextとDesignModeを使用することは不可能のようです。
助けてくれてありがとう。私は答えを見つけるために自分自身を検索するのに多くの時間を費やしました、そして今のところできませんでした。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
webBrowser1.DocumentText = "<HTML><BODY>Initial text</BODY></HTML>";
}
private void designModeToolStripButton_Click(object sender, EventArgs e)
{
if (this.designModeToolStripButton.Checked)
webBrowser1.Document.DomDocument.GetType().GetProperty("designMode").SetValue(webBrowser1.Document.DomDocument, "On", null);
else
webBrowser1.Document.DomDocument.GetType().GetProperty("designMode").SetValue(webBrowser1.Document.DomDocument, "Off", null);
}
private void setTextToolStripButton_Click(object sender, EventArgs e)
{
webBrowser1.DocumentText = "<HTML><BODY>New text</BODY></HTML>";
}
}
また、WebBrowserDocumentCompletedイベントでDesignModeの設定を試みましたが、同じ問題が(自動的に)発生します。
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (this.designModeToolStripButton.Checked)
webBrowser1.Document.DomDocument.GetType().GetProperty("designMode").SetValue(webBrowser1.Document.DomDocument, "On", null);
else
webBrowser1.Document.DomDocument.GetType().GetProperty("designMode").SetValue(webBrowser1.Document.DomDocument, "Off", null);
}