我有一个带有文本框,按钮和tabcontrol的表单。
按钮中的我有这段代码:
[Dim browser As New WebBrowser()
TabPage1.Controls.Add(browser)
browser.Dock = DockStyle.Fill
browser.Navigate(New Uri("http://www.google.com"))]
上面的代码有效,但我需要能够从我的文本框中搜索,当我点击按钮时,它会带我去谷歌然后自动输入我在文本框中搜索的单词,然后单击谷歌上的搜索按钮。我试过这个,但它不起作用。感谢
Dim textElement. As HtmlElement = browser.Document.All.GetElementsByName("q")(0)
textElement.SetAttribute("value", textbox.text")
Dim btnElement As HtmlElement = browser.Document.All.GetElementsByName("btnG")(0)
btnElement.InvokeMember("click")
答案 0 :(得分:0)
在单击按钮之前,您需要将焦点设置到textElement。
textElement.Focus()
否则,页面显然不会运行搜索。
您可以通过在控制台窗口中尝试上述相同的基本步骤来查看此内容。他们不会工作直到该领域有焦点(从我的测试中)。
(我还使用了mshtml类型库,以便点击功能直接在下面的完整代码中公开)
Imports mshtml
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
web.Navigate("http://www.google.com")
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim textElement As HtmlElement = web.Document.All.GetElementsByName("q")(0)
textElement.SetAttribute("value", TextBox1.Text)
textElement.Focus()
Dim btnElement As HTMLButtonElement =
CType(web.Document.All.GetElementsByName("btnG")(0).DomElement,
HTMLButtonElement)
btnElement.click()
End Sub
End Class
答案 1 :(得分:0)
我认为您可以在按钮点击处理程序中使用它...
browser.navigate("https://www.google.co.in/search?q="+textbox.Text)
这将在Google上搜索文本框中的文本。 您可以在不“自动单击搜索按钮”的情况下进行搜索,而无需在html的文本元素中设置值。这适合我。希望这会有所帮助。
答案 2 :(得分:0)
我还需要在Google浏览器中搜索用户想要的文本,并将下面的代码添加到Button Click Event中,即可达到我想要的效果。
代码:
Dim sInfo As New ProcessStartInfo("https://www.google.co.in/search?q=" & TXT_Entidade.Text)
Try
Process.Start(sInfo)
Catch ex As Exception
Process.Start("iexplore.exe", sInfo.FileName)
End Try