2014-12-04 54 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 
    } 
} 
相关问题