vb.net веб-браузер, если заявление

Я разработал веб-браузер вместе с настраиваемой адресной строкой (выпадающий список). Я сохраняю всю историю, которую просматривает пользователь в этом комбинированном списке, используя my.settings. Здесь моя проблема. Я добавляю к каждому сайту префикс "http://" только для того, чтобы сделать его правильным. Я правильно обрабатываю https, только когда перед адресом ничего не набирается, я ставлю префикс http. Я могу сохранять историю очень хорошо, моя проблема в том, чтобы создать дубликат, потому что http введен пользователем, поэтому " http://cnn.com/" находится в списке истории, но cnn.com не так, когда пользователь вводит в 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 ответ

Решение

Этот бит имеет недостатки:

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 смотреть что происходит

Другие вопросы по тегам