私のWebBrowserコントロールでユーザーが選択したテキストを取得し、MSDNやその他のリソースを掘り下げて運がなかったので、私は実際にこれを行う方法があるかどうか疑問に思っていました。多分私は単に何かを逃した。
これに関する助けやリソースに感謝します。
ありがとう
WebBrowserコントロールのDocument.domDocumentプロパティを使用し、これをMicrosoft.mshtml相互起動アセンブリに提供されているIHTMLDocument2インターフェイスにキャストする必要があります。これにより、IEで実際に実行されているJavaScriptが使用できるように、フルDOMにアクセスできます。
これを行うには、まず、「C:¥Program Files¥Microsoft.net¥Primosit.mshtml.dll」で正常にMicrosoft.mshtmlアセンブリへのリファレンスを追加する必要があります。複数のものがあるかもしれません、必ずこのパスを参照して参照を選択してください。
次に、現在のテキスト選択を取得するために、次のようになります。
using mshtml;
...
IHTMLDocument2 htmlDocument = webBrowser1.Document.DomDocument as IHTMLDocument2;
IHTMLSelectionObject currentSelection= htmlDocument.selection;
if (currentSelection!=null)
{
IHTMLTxtRange range= currentSelection.createRange() as IHTMLTxtRange;
if (range != null)
{
MessageBox.Show(range.text);
}
}
_
.NETアプリケーションからフルDOMへのアクセスの詳細については、次のものを参照してください。
誰かがMSHTML.dllへの参照を追加する必要がないソリューションに興味がある場合には:
private string GetSelectedText()
{
dynamic document = webBrowser.Document.DomDocument;
dynamic selection = document.selection;
dynamic text = selection.createRange().text;
return (string)text;
}
_