webbrowserコントロールでIEの「このページの検索」を行うには への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 brv  (中学生)
投稿日時
2009/9/5 23:44:56
るしぇさんに紹介していただいたページを参考にしたら、できました。
http://yaplog.jp/orator/archive/9
ここにあったVB6のコードを、VB.NETにかきかえただけです。
browserに探す対象のブラウザ、strに探す語句を入れると、その語句が反転します。
るしぇさん、ありがとうございました。
Private Sub Find(ByVal browser As WebBrowser, ByVal str As String)
Dim Doc As mshtml.HTMLDocument 'MSHTML.HTMLDocument
Dim Body As mshtml.HTMLBody 'MSHTML.HTMLBody
Dim Range As mshtml.IHTMLTxtRange 'MSHTML.IHTMLTxtRange
Dim BMK As String = ""
'検索文字列を入れておいてください。
If String.IsNullOrEmpty(str) Then
Return
End If
Doc = DirectCast(browser.Document.DomDocument, mshtml.IHTMLDocument2)
Body = Doc.body
Range = Body.createTextRange
'≫≫≫≫≫ 検索開始
Do While Range.findText(str)
'最初に見つかった位置を保存しておきます。
If String.IsNullOrEmpty(BMK) = 0 Then
End If
BMK = Range.getBookmark
'検索した語句を黄色く反転させる。
Range.execCommand("BackColor", False, "YELLOW")
'論理カーソル位置を、検索した語句の末尾に移動させる。
Range.collapse(False)
Loop
'≪≪≪≪≪ 検索終了
'ついでに、最初に見つけた語句の位置までスクロールさせています。
If Not String.IsNullOrEmpty(BMK) Then
Range.moveToBookmark(BMK)
Range.scrollIntoView()
End If
'最後は一応、後始末を。
Range = Nothing
Body = Nothing
Doc = Nothing
End Sub
http://yaplog.jp/orator/archive/9
ここにあったVB6のコードを、VB.NETにかきかえただけです。
browserに探す対象のブラウザ、strに探す語句を入れると、その語句が反転します。
るしぇさん、ありがとうございました。
投稿者 brv  (中学生)
投稿日時
2009/9/5 23:23:11
僕も今ブラウザを作っていて、自分でテキストを検索するようにしようと思っていますが、
実現できていません。
るしぇさんの言うとおりに、「VB.net webbrowser 検索」でググったらそれっぽいものがヒットしました。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=3359&KLOG=12
ActiveXのWebBrowserをいじくって、何とかするしか方法はなさそうです。
実現できていません。
るしぇさんの言うとおりに、「VB.net webbrowser 検索」でググったらそれっぽいものがヒットしました。
http://bbs.wankuma.com/index.cgi?mode=al2&namber=3359&KLOG=12
ActiveXのWebBrowserをいじくって、何とかするしか方法はなさそうです。
投稿者 wii  (中学生)
投稿日時
2009/9/5 20:47:17
はじめまして。
僕もブラウザは何度か作りました。いま実はそのブラウザを使ってる(笑)
まず、webbrowserの上で、Ctrl+Fを押してみて下さい。
検索できると思います。
「それじゃダメ」なら僕にはできません。ごめんなさい。
僕もブラウザは何度か作りました。いま実はそのブラウザを使ってる(笑)
まず、webbrowserの上で、Ctrl+Fを押してみて下さい。
検索できると思います。
「それじゃダメ」なら僕にはできません。ごめんなさい。
投稿者 るしぇ  (社会人)
投稿日時
2009/8/26 22:44:56
まずは調べてください。
例えば
「VB.net webbrowser 検索」あたりのキーワードでWEB検索すれば
それらしい情報が引っ掛かります。
例えば
「VB.net webbrowser 検索」あたりのキーワードでWEB検索すれば
それらしい情報が引っ掛かります。
投稿者 toru0298  (社会人)
投稿日時
2009/8/25 06:47:16
現在私は、VB2008 EXPRESS でwebbrowserコントロールを配置したブラウザを作成していますが、このブラウザに、IEの「このページの検索」のような機能を実装したいと考えています。
例えば、textboxに検索する文字を入力し、ボタンを押すと、webbrowserで表示されているwebページの中の検索された文字が反転され、その位置までスクロールされるというものを考えています。
このようなことを行うにはどのようにすれば良いか、教えていただきたいと思います。お願いします。
例えば、textboxに検索する文字を入力し、ボタンを押すと、webbrowserで表示されているwebページの中の検索された文字が反転され、その位置までスクロールされるというものを考えています。
このようなことを行うにはどのようにすれば良いか、教えていただきたいと思います。お願いします。
個人的に参考になったのは、wiiさんの説明にあった「Ctrl+F」です。もともとそういう機能が備わっているという事を知りませんでした。これならばコードを追加する必要がありませんね。助かりました。
brvさんには、丁寧にコードまで記載していただきありがとうございます。しかし、私は今作っているブラウザが初めての作品であり、VBも.NETも分からずに本やインターネットを見ながら作っている状態で、コードについてはほとんど分かりません。ですから、折角のコードも私には理解不能です。
今後、こういう難しいコードについても理解した上で作れるようになりたいと思っています。ウェブブラウザーコントロールの文字を「検索」、「反転」するテクニックは応用範囲も広いと思われ、後々参考にさせていただきたいと思っています。また、色々と教えてください。
ありがとうございました。