2014-12-04 51 views
-3

它跳過導航到有效的URL並直接進入Google搜索。如果我在文本框中輸入「stackoverflow.com」,Google會搜索「stackoverflow.com」。爲什麼只能搜索Google?

private void button1_Click(object sender, EventArgs e) 
{ 
    webBrowser1.Navigate(textBox1.Text); //navigates to url in textbox 

    if (!textBox1.Text.StartsWith("http://")) 
    { 
     webBrowser1.Navigate("http://www.google.ie/search?q=" + (textBox1.Text)); 
    } 
} 
+2

什麼問題? – reggaeguitar 2014-12-04 19:08:54

+0

可能應該和if/else代替'Navigate',然後'Navigate'如果... – crashmstr 2014-12-04 19:09:32

+6

顯然「stackoverflow.com」不以「http://」開頭,那麼爲什麼你會期望它有什麼不同? – BradleyDotNET 2014-12-04 19:09:53

回答

5

該代碼,英語,基本上說「導航到任何已輸入到文本框中然後,IF無論您輸入到文本框不啓動。的‘http://’讓我們立刻做谷歌搜索它。「

基本上你導航到stackoverflow.com但你那麼立即谷歌搜索它來代替。如果你希望它的行爲不同,你需要以不同的方式進行編碼。

以下是我想返工:

private void button1_Click(object sender, EventArgs e) 
{ 
    if (!textBox1.Text.StartsWith("http://")) 
    { 
     // didn't start with "http://" so search for it 
     webBrowser1.Navigate("http://www.google.ie/search?q=" + (textBox1.Text)); 
    } 
    else 
    { 
     // navigate directly to the URL 
     webBrowser1.Navigate(textBox1.Text); 
    } 
} 

if-else聲明,只有一個邏輯路徑將根據具體的情況來選擇。這兩種情況都不會發生。

0

它搜索谷歌,因爲你的邏輯是說'如果文本框內容不是以http://開始我們做Google搜索'。您實際上是加載stackoverflow.com,但您立即更改頁面並加載Google。

您可能需要以下修改爲「過濾器」你的代碼出來的代碼,通過不加載stackoverflow.com第一節省一些內存:

private void button1_Click(object sender, EventArgs e) 
{ 
    if (!textBox1.Text.StartsWith("http://") | !textBox1.Text.StartsWith("www") || !textBox1.Text.StartsWith("http://www")) 
    { 
     webBrowser1.Navigate("http://www.google.ie/search?q=" + (textBox1.Text)); 
    } 
    else 
    { 
     webBrowser1.Navigate(textBox1.Text); //navigates to url in textbox 
    } 
} 
相關問題