vb.net webbrowser if语句
我开发了一个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
该位是有缺陷的:
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
中描述的步骤来观察发生了什么
谢谢我认为我会采纳您的建议并声明一个变量并使用它。 – 2014-10-05 11:53:22
因为它使用相同的字符串2ce使用var可以防止错字(测试一个版本,添加另一个版本)。当您忘记更新所有存在的位置时,会发生很多复制粘贴代码。另外,'&'是字符串连接的首选运算符。 – Plutonix 2014-10-05 11:57:28
好的,再次感谢! – 2014-10-05 11:58:23
您的代码正在这样做 - 在执行您所描述的“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