我开发了一个web浏览器以及一个自定义地址栏(combobox)。我使用my.settings保存了用户浏览器在该组合框中的所有历史记录。这是我的问题。为了使其正确,我在每个站点前加“http://”。我确实正确处理https,它只有在地址前没有输入任何内容时,我用http前缀。我能够保存历史记录就好,我的问题是它创建一个副本,因为http是由用户输入的,因此“http://cnn.com”位于历史记录列表中,但cnn.com不是这样,当用户输入cnn.com时它看到它是新的并且附加http://cnn.com到列表中,并且它是一个dup。下面是我的if语句:第一行是我试着说如果这个网站已经存在,不要添加它,只需浏览它。vb.net webbrowser 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
您的代码正在这样做 - 在执行您所描述的“cnn”时,使用断点进行调试很容易。 “Else”块应该在添加之前检查列表中是否存在新文本 – Plutonix 2014-10-05 11:31:34
ahhhhhh我是多么愚蠢。谢谢。通过阅读你的消息来想出它。我应该寻找“http://”+“”+ Combobox1.text – 2014-10-05 11:34:26
是的,那工作。谢谢。你想将其设置为答案,以便我可以标记它? – 2014-10-05 11:36:12