我開發了一個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