2012-01-30 6 views
2

私は、VS 2010のWebブラウザコントロールを使用して検索したい非常に大きなHTMLファイルを持っています。検索ボックス(CTRL-F)をに設定する方法はありますか?を徐々に検索していますか?つまり、「ハンドブック」という単語を入力しようとすると、「ha」のすべての文字よりも、すべての文字「h」について、ドキュメント全体をスキャンするように見えます。これは短いドキュメントには最適ですが、 (私のものは約35MBです)、検索が役に立たなくなります。いいえ、ドキュメントベンダーに多くの小さなドキュメントを作成させることはできません。それは非スターターです:-)C#Webブラウザ検索ダイアログの動作を設定するには?

答えて

0

検索テキストをカットし、検索入力は入力するのではなく

+0

htmlagilitypack使用することができますが、組み込みの必要な検索テキストと共にダイアログの「検索」を起動することが可能ですか? – SC28

0

最初に検索メソッドを呼び出すスレッドを使用します。検索方法にThread.Sleep(/*the number*/);を使用して、ユーザーが正しい検索パターンを書き込むのを待ちます。その後、

TextBox.Text(Serachパターン)を取得これはサンプルコードです:最初に

using System.Threading; 

Form1のコンストラクタ:

public Form1() 
    { 
     InitializeComponent(); 
     Form1.CheckForIllegalCrossThreadCalls = false; 
     //another codes that you want 

    } 

TextBoxのTextChangedイベント:

private void textBox1_TextChanged(object sender, EventArgs e) 
{ 
    Thread t=new Thread(SearchMethod); 
    t.Start();  
} 

SearchMethod:

private SearchMethod() 
{ 
    Thread.Sleep(5000); //wait 5 second in this state form doesn't hang. 
    Search(TextBox.Text); 
} 

を検索:

private Search(string pattern) 
{ 
    //Do search 
} 
+0

(可能であれば、HTML文書内のハイライトのために、組み込みの検索を使用したいと思っています。 – SC28

+0

@ SC28:私の答えは可能ではありませんか? –

+0

もちろん、組み込みの検索ダイアログボックスを置き換えれば、元のhtmlドキュメント内のテキストを強調表示し、次または前のドキュメントナビゲーションを提供する必要がある場合、アプローチは機能します。 – SC28

0

それは別の方法です。あなたの巨大な文字列の場合、LINQを使ってデータを見つけることができます。他の方法よりも速いです。 Googleを使用してLINQを学習する必要がありますが、thisはLINQから始めるのに役立ちます

+0

ありがとうございました - .Net 2.0 :-(このプロジェクトでは – SC28

+1

@ SC28なぜあなたは.Net 3.5を使用しないのですか? –

0

Windows IE版のために問題があると思います。 WebブラウザはIEを使用してページをレンダリングする(おそらくは検索する)ためです。

とあなたはまた、(私はそれが役立つことができると思います)