0

Web ブラウザー コントロールを使用して Windows Phone 7 用の Web ブラウザー アプリを作成しました。デフォルトの検索エンジン (つまり、Google 検索または Bing 検索に使用される te​​xtBox) を追加したいと考えています。また、ユーザーが何か (テクノロジーなどの単語) を入力すると、検索は上記の既定の検索エンジンにリダイレクトされます。誰でもこれで私を助けることができますか??? URL の入力に使用した textBox の名前は「UrlTextBox」、Web ブラウザー コントロールの名前は「browsers」です。検索エンジンに使用されるテキストボックスは「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 コードも追加しました。しかし、それは私にとってはうまくいかず、エラーも表示されます。私はそれでいくつかの間違いを犯していると思います。誰でも修正できますか?前もって感謝します!!!

4

1 に答える 1

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ただし、コードにはオブジェクトを 1 つだけ含める必要があります。

SearchEngine defaultSearchEngine;

したがって、ユーザーがテキストを入力して [Go] を選択すると、入力したテキストが有効な URL であるかどうかを確認し (おそらく正規表現を使用)、そうでない場合は次のようにします。

String url = String.Format(defaultSearchEngine.URLPattern, SearchTextBox.Text);
于 2012-05-20T19:04:42.677 に答える