2012-05-20 67 views
0

我已經使用網頁瀏覽器控件爲windows phone 7創建了一個網頁瀏覽器應用程序。我想添加一個默認搜索引擎(即用於Google搜索或Bing搜索的文本框)。此外,如果用戶輸入任何內容(如技術等詞),搜索應該重定向到上述默認搜索引擎。誰能幫我這個??? 我用於輸入URL的文本框被命名爲「UrlTextBox」,我的網頁瀏覽器控件被命名爲「瀏覽器」。文本框用於搜索引擎被命名爲「SearchTextBox」。 在此先感謝您的辛勤工作!需要網頁瀏覽器控制的默認搜索引擎

public void browsers_Navigating(object sender, NavigatingEventArgs e) 
    { 
     UrlTextBox.Text = e.Uri.ToString(); 
     if (navigationcancelled) 
     { e.Cancel = true; } 

     SearchEngine[] availableSearchEngines = new SearchEngine[] 
     {new SearchEngine(){ Name = "Google", URLPattern = "http://www.google.com/search?q={0}" }}; 
     new SearchEngine(){ Name = "Yahoo", URLPattern = "http://search.yahoo.com/search?p={0}" }; 
     new SearchEngine(){ Name = "Bing", URLPattern = "http://www.bing.com/search?q={0}" }; 
    } 

UrlTextBox-:

private void UrlTextBox_KeyDown(object sender, KeyEventArgs e) 
    { 
     if (e.Key == Key.Enter) 
     { 
      Uri url; 
      if (Uri.TryCreate(UrlTextBox.Text, UriKind.Absolute, out url)) 
      { 
       this.urls[this.currentIndex] = UrlTextBox.Text; 
       this.browsers[this.currentIndex].Navigate(url); 
      } 

      if (!Uri.TryCreate(UrlTextBox.Text, UriKind.Absolute, out url)) 
      { 
       SearchEngine defaultSearchEngine = availableSeachEngines[0]; 
       String URL = String.Format(defaultSearchEngine.URLPattern, UrlTextBox.Text); 
      } 

      else 
      { 
       Navigate(UrlTextBox.Text); 
      } 
     } 
    } 

但有一個錯誤說:「availableSeachEngines」 ---> 名稱availableSeachEngines沒有在當前的背景下存在。

現在我已經在我的程序中添加了我的代碼,並在其中添加了Muaz Othman代碼。但它不適合我,也顯示錯誤。我認爲它會犯一些錯誤。任何人都可以糾正它?提前致謝!!!

回答

3

您可以創建這樣一個類:

public class SearchEngine { 

    public string Name {set; get} 
    public string URLPattern { get; set;} 

    public override string ToString(){ 
     return Name; 
    } 
} 

,並在你的代碼,你可以有這樣的數組:

SearchEngine[] availableSearchEngines = new SearchEngine[]{ 
    new SearchEngine(){ Name = "Google", URLPattern = "http://www.google.com/search?q={0}" }; 
    new SearchEngine(){ Name = "Yahoo", URLPattern = "http://search.yahoo.com/search?p={0}" }; 
    new SearchEngine(){ Name = "Bing", URLPattern = "http://www.bing.com/search?q={0}" }; 
} 

但在你的代碼,你應該只有一個SearchEngine對象:

SearchEngine defaultSearchEngine; 

因此,當用戶輸入文本並選擇「轉到」時,檢查輸入的t ext是一個有效的URL(可能使用正則表達式),如果你不這樣做:

String url = String.Format(defaultSearchEngine.URLPattern, SearchTextBox.Text); 
+0

現在,我已經創建了一個本地搜索引擎類,但我不知道在哪裏把第二和第四步代碼。你能幫助我嗎?對不起,新來的C#!感謝你的努力工作!!! –

+0

當然:第二部分(數組)可以作爲數據成員放入您的'browsers'類,然後您可以輸入搜索按鈕的事件代碼:'SearchEngine defaultSearchEngine = availableSearchEngines [0]; String url = String.Format(defaultSearchEngine.URLPattern,SearchTextBox.Text);' –

+0

@MuazOthman很好的解決方案。 –

相關問題