6

WebBrowserVB.NET 2008 を使用してコントロールで Web サイトを開いています。Web サイトの 4 ページ目で、プログラムでタブ キーをトリガーしてコントロールにフォーカスしたいと考えています。次のコードを使用しています。

If adtxt.Text = "http://aojsl.com/dfassfeed2.php" Then
    System.Windows.Forms.SendKeys.Send("{TAB}")
End If

ただし、私のコードではタブ キーをトリガーできません。これを機能させる方法を知っている人はいますか?

4

5 に答える 5

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


もう1つ:

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()
于 2012-06-24T10:30:13.140 に答える
0

youreページの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
于 2012-06-24T09:43:54.003 に答える
0

vb.net の focus 関数を使用して select 要素をフォーカスします。たとえば、

Me.WebBrowser1.Document.All.Item("password").Focus()

これにより、password という要素にフォーカスが置かれます。

を使用Me.WebBrowser1.Document.All.Item("YOURelement")して正しい要素を見つけてから、追加.Focus()して目的の要素に焦点を合わせます! :D

于 2016-12-10T16:08:04.300 に答える
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 スレッドから VB.Net に変換しました: System.Windows.Controls.WebBrowser の問題に焦点を当てる

ActiveElement をwebBrowser.Document.ActiveElement.Focus()テキストボックスまたはボタンに変更する必要があります。

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();"> 
于 2012-06-24T04:38:47.697 に答える