vb.net webbrowser if语句

时间:2014-10-05 11:12:43

标签: vb.net webbrowser-control

我开发了一个Web浏览器以及一个自定义地址栏(组合框)。我使用my.settings保存用户浏览到该组合框中的所有历史记录。这是我的问题。我正在为每个网站添加“http://”前缀,以使其正确。我正确处理https,它只在地址前面没有输入时,我用http作为前缀。我能够很好地保存历史记录,我的问题是它创建了一个副本,因为用户输入了http,因此“http://cnn.com”在历史记录列表中,但当用户在cnn中键入时cnn.com不是这样它将它视为新的并将http://cnn.com附加到列表中,它是一个副本。下面是我的if语句:第一行是我试着说这个网站是否已经存在,不要添加它,只是浏览它。

Private Sub btncustomsite_Click(sender As Object, e As EventArgs) Handles btncustomsite.Click
        If ComboBox1.Items.Contains(ComboBox1.Text) Then
            WebBrowser1.Navigate(ComboBox1.Text)
        ElseIf ComboBox1.Text = "" Then
            MsgBox("ENTER A WEBSITE ADDRESS", , "Warning")
            ComboBox1.Focus()
            Exit Sub
        ElseIf ComboBox1.Text.StartsWith("https") Then
            ComboBox1.Items.Add(ComboBox1.Text)
            WebBrowser1.Navigate(ComboBox1.Text)
        ElseIf ComboBox1.Text.StartsWith("http") Then
            ComboBox1.Items.Add(ComboBox1.Text)
            WebBrowser1.Navigate(ComboBox1.Text)
        ElseIf Not ComboBox1.Text.StartsWith("http") Then
            ComboBox1.Text = "http://" + ComboBox1.Text
            ComboBox1.Items.Add(ComboBox1.Text)
            WebBrowser1.Navigate(ComboBox1.Text)
        ElseIf Not ComboBox1.Text.EndsWith(".com") Then
            WebBrowser1.Navigate("google.com")
            WaitForPageLoad()
            SendKeys.Send(ComboBox1.Text)
            SendKeys.Send("{ENTER}")
        Else
            ComboBox1.Text = "http://" + ComboBox1.Text
            ComboBox1.Items.Add("http://" + ComboBox1.Text)
            WebBrowser1.Navigate(ComboBox1.Text)
        End If
    End Sub

1 个答案:

答案 0 :(得分:1)

这一点有缺陷:

Else
    ComboBox1.Text = "http://" + ComboBox1.Text
    ComboBox1.Items.Add("http://" + ComboBox1.Text)
    WebBrowser1.Navigate(ComboBox1.Text)

你想要这样的东西:

Else
    Dim tmp As String = "http://" & ComboBox1.Text
    ' only add if the new text is not there
    If ComboBox1.Items.Contains(tmp) = False Then ComboBox1.Items.Add(tmp)
    ComboBox1.Text = tmp
    WebBrowser1.Navigate(ComboBox1.Text)

您可以在程序开始时设置断点;然后执行为cnn描述的步骤来观察发生的事情

相关问题