DOBON.NETプログラミング道掲示板
(現在 過去ログ1 を表示中)

[ 親記事をトピックトップへ ]

このトピックに書きこむ

過去ログには書き込み不可

■32904 / inTopicNo.1)  Webbrowserコントロールでのページ内検索
  
□投稿者/ takeru 一般人(1回)-(2015/04/07(Tue) 17:24:55)
  • アイコン環境/言語:[Windows7 C# Framework4.5] 
    分類:[.NET] 

    Webbrowserコントロールでのページ内検索を実装しています。
    ExecWBにOLECMDID_FINDを渡すと標準の検索ダイアログが表示され、ページ内検索が可能な事は確認済みですが、当方がやりたいことはIEのように検索HIT数の表示も可能なツールバータイプでの実装を考えています。
    IHTMLTxtRangeを利用し下記の様にして、検索語句のハイライト表示は可能でしたが、HIT数に関しては表示されていないものまでHITしてしまっているようで実際にハイライトされている数と一致しません。
    ページ内に表示されているもののみカウントする方法はありますでしょうか?

    int cnt = 0;
    mshtml.IHTMLDocument2 doc = Browser.Document.DomDocument as mshtml.IHTMLDocument2;
    mshtml.IHTMLBodyElement body = doc.body as mshtml.IHTMLBodyElement;
    mshtml.IHTMLTxtRange objRange = body.createTextRange();
    while (true)
    {
    //文字列検索
    ret = objRange.findText(str, 1, 0);
    if (ret == false)
    {
    //見つからなかった(ハイライト処理終了)
    break;
    }
    //見つかった文字列の部分の背景の色を黄色に変更
    objRange.execCommand("BackColor", false, "YELLOW");

    //次の検索開始位置を後方にづらす。
    objRange.collapse(false);

    cnt++;
    }
引用返信 削除キー/



トピック内ページ移動 / << 0 >>
Mode/  Pass/


- Child Tree -