2012-01-30 119 views
2

我有一個非常大的HTML文件,我想搜索(使用VS 2010的Web瀏覽器控件)。有沒有辦法將搜索框(CTRL-F)配置爲而不是逐步搜索?也就是說,如果我嘗試輸入「手冊」一詞,控制似乎開始掃描每個字母'h'的整個文檔,而不是每個'ha'實例 - 這對於短文檔很有用,但對於非常大的文檔(我的是約35MB),這使得搜索無用的 - 不,我不能獲取文檔的供應商產生許多較小的文檔 - 這是一個非首發:-)如何配置c#Web瀏覽器搜索對話框行爲?

回答

0

嘗試剪切和粘貼搜索文本到搜索輸入而不是輸入。

+0

是否有可能推出內置的「查找」對話框連同所需的搜索文本? – SC28 2012-01-30 18:46:14

0

首次使用線程調用搜索方法。然後在搜索方法中使用Thread.Sleep(/*the number*/);以等待用戶編寫正確的搜索模式。然後拿到TextBox.Text(貨品搜尋模式)

這是示例代碼:

起初:

using System.Threading; 

Form1構造:

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

    } 

文本框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 2012-01-30 18:47:32

+0

@ SC28:這不可能與我的答案? – 2012-01-30 19:42:15

+0

當然,如果我替換內置的搜索對話框 - 當您需要突出顯示原始html文檔中的文本並提供下一個/上一個文檔導航時,您的方法將起作用,只是成爲一個更大的項目。 – SC28 2012-01-30 20:23:12

0

這是另一種方式。對於你的巨大字符串,你可以使用LINQ來查找數據。它比另一種方式更快。你應該使用谷歌學習LINQ,但this可以幫助你開始與LINQ

+0

謝謝 - 卡與.net 2.0 :-(這個項目 – SC28 2012-01-30 20:55:21

+1

@ SC28爲什麼你不使用的.Net 3.5? – 2012-01-31 17:52:45

0

我認爲你可能有問題,因爲Windows IE版本。因爲Web瀏覽器使用IE來渲染(也許搜索)頁面。

,你也可以使用htmlagilitypack(我認爲這可能是有用的)