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