2

我有一个带有文本框、按钮和选项卡控件的表单。

在按钮中我有这个代码:

[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")
4

3 回答 3

0

我认为您可以在按钮单击处理程序中使用它...

browser.navigate("https://www.google.co.in/search?q="+textbox.Text)

这将在 Google 中搜索您的文本框中的文本。您可以在不“自动单击搜索按钮”的情况下进行搜索,并且不必在 html 的文本元素中设置值。这对我有用。希望这可以帮助。

于 2014-08-09T05:15:11.737 回答
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
于 2013-01-20T21:33:00.067 回答
0

我还需要在谷歌浏览器中搜索用户想要的文本,并将下面的代码添加到按钮单击事件中,它完成了我想要的操作。

代码:

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
于 2020-08-05T10:36:05.837 回答