splitcontainer.panel内にWebブラウザコントロールを実装するのに奇妙な問題があります。 上記のエラーが発生します。私はsplitcontainer.panelの外に持ってくるのと同じコーディングを試みました。すべて正常に動作します。WebBrowser splitcontainer.panel内のDoubleclickがエラーをスローしています:System.Runtime.InteropServices.COMException HRESULT:0x800A025E
ウェブページを読み込むときに、ウェブページ上の単語をクリックすると、ダブルクリックした単語を選択してメッセージボックスに表示する必要があります。
私たちの専門家が私にこれを助けることができたら本当にありがたいです。ここ
は私のサンプルコーディングです:
PS:そのは
更新)(range1.selectでクラッシュ:また、私は、私はウェブブラウザのための動的制御を使用しない場合、それはあまりにも正常に動作していること、さらにテスト時に気づきました。 しかし動的タブ、パネル、Webブラウザも私の基準の一つです。
public partial class Form1 : Form
{
public static string lbname;
public WebBrowser br1 = new WebBrowser();
public WebBrowser br2 = new WebBrowser();
public Form1()
{
InitializeComponent();
}
private void button1_Click_1(object sender, System.EventArgs e)
{
var tab = new TabPage("1");
tabControl1.Controls.Add(tab);
tabControl1.SelectedTab = tab;
tab.Select();
var pnl = new Panel();
tab.Controls.Add(pnl);
pnl.Controls.Add(br1);
Uri url1 = new Uri("http://www.google.com");
br1.Url = url1;
br1.DocumentCompleted += Browser1_DocumentCompleted;
}
private void Browser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
br1.Document.DetachEventHandler("ondblclick", Document_DoubleClick);
br1.Document.AttachEventHandler("ondblclick", Document_DoubleClick);
}
private void Document_DoubleClick(object sender, EventArgs e)
{
IHTMLDocument2 doc1 = br1.Document.DomDocument as IHTMLDocument2;
IHTMLSelectionObject currentSelection = doc1.selection;
if (currentSelection != null)
{
IHTMLTxtRange range1 = currentSelection.createRange() as IHTMLTxtRange;
if (range1 != null)
{
range1.expand("word");
range1.select();
MessageBox.Show("selected text" + range1.text);
}
}
}
===== そしてもちろん、私はすでにMSHTMLを参照している、とSHDOCVWそれはsplitcontainer.panel除いて働いているので。