我正在使用VB.NET 2008在WebBrowser
控件中打开一个网站。在网站的第四页,我想通过以编程方式触发Tab键来集中控件。我使用以下代码:
If adtxt.Text = "http://aojsl.com/dfassfeed2.php" Then
System.Windows.Forms.SendKeys.Send("{TAB}")
End If
但是,我的代码无法触发Tab键。有谁知道如何使这项工作?
答案 0 :(得分:0)
方法1
Private Sub Form_Load()
WebBrowser1.Navigate "http://www.google.com/"
Do
Thread.Sleep(100)
Loop While webBrowser1.IsBusy = True
End Sub
Private Sub Command1_Click()
WebBrowser1.Document.All("q").focus 'Set focus to the search text field
End Sub
Private Sub Command2_Click()
WebBrowser1.Document.All("btnI").focus 'Set focus to the google "I Am feeling lucky button"
End Sub
方法2
我从这个MSDN thread: Focus issues with System.Windows.Controls.WebBrowser
转换为VB.Net您需要将webBrowser.Document.ActiveElement.Focus()
中的ActiveElement更改为文本框或按钮。
Public Partial Class Form1
Inherits Form
Public Sub New()
InitializeComponent()
Dim host As New WindowsFormsHost()
im webBrowser As New WebBrowser()
host.Child = webBrowser
elementHost1.Child = host
webBrowser.Navigate(New Uri("http://www.google.com"))
Me.Activated += Function() Do
Console.WriteLine(Me.ActiveControl)
If webBrowser.Document <> Nothing Then
If Me.ActiveControl = elementHost1 AndAlso webBrowser.Document.ActiveElement <> Nothing Then
webBrowser.Document.ActiveElement.Focus()
End If
End If
End Function
End Sub
End Class
方法3
另一种方法可能是在HTML中执行此操作,例如:
OnLoad="document.myform2.mybutton.focus();">
答案 1 :(得分:0)
让我们说你网页的html是:
<button id="btn">Ok</button><input id="txt">
你可以用这种方式设置焦点:
If adtxt.Text = "http://aojsl.com/dfassfeed2.php" Then
webbrowser1.document.getelementbyid("btn").focus()
webbrowser1.document.getelementbyid("txt").focus()
End If
答案 2 :(得分:0)
另一种方式:
使用GetElementsByTagName(TagName)
让我们说你的HTML是:
<button>no</button>
<button>no</button>
<button onclick='alert(1);'>--focus me!--</button>
<button>no</button>
Dim Elems As HtmlElementCollection
Dim WebOC As WebBrowser = WebBrowser1
Elems = WebOC.Document.GetElementsByTagName("button")
For Each elem As HtmlElement In Elems
If elem.InnerHtml = "--focus me!--" Then
elem.Focus()
elem.InvokeMember("click")
End If
Next
另一个:
Dim num As Integer = 1
Dim elms As HtmlElementCollection
Dim wb As WebBrowser = WebBrowser1
elms = wb.Document.GetElementsByTagName("button")
For Each elem As HtmlElement In elms
If elem.Id = "" Then
elem.Id = "button" & num.ToString
num = num + 1
End If
Next
WebBrowser1.Document.GetElementById("button3").Focus()
答案 3 :(得分:0)
使用vb.net中的焦点功能聚焦select元素。例如,
Me.WebBrowser1.Document.All.Item("password").Focus()
这将把重点放在名为密码的元素上!
使用Me.WebBrowser1.Document.All.Item("YOURelement")
找到正确的元素,然后添加.Focus()
以专注于您想要的元素! :d
答案 4 :(得分:-1)
这样做Me.WebBrowser1.Document.All.Item(textbox1.text).Focus()
创建一个文本框然后如果你想要Spambot它很容易检测每次你写的Typ和发送