Stel de focus in een HTML-tekstvak of knop in een WebBroswer-besturingselement

Ik ben bezig met het openen van een website in een besturingselement WebBrowser met behulp van VB.NET 2008. Op de vierde pagina van de website wil ik de besturing concentreren door de tab-toets programmatisch te activeren. Ik gebruik de volgende code:

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

Mijn code kan echter de tabsleutel niet activeren. Weet iemand hoe dit te laten werken?

6
Gebruik de TAB-sleutel niet, ik zal u een betrouwbaardere methode vinden om de focus op een HTLM-element in het WebBrowser-besturingselement in te stellen
toegevoegd de auteur Jeremy Thompson, de bron
Had u verdere verduidelijking nodig? Als u de tabbladen wilt gebruiken die ik u kan helpen, gebruikt u gewoon de tweede methode en dan heeft de WebBrowser-besturing focus.
toegevoegd de auteur Jeremy Thompson, de bron
Nee ik heb het geconverteerd naar VB.Net met behulp van CodeChanger.com , ik heb de code van de Microsoft-thread gekregen, niet de code werk?
toegevoegd de auteur Jeremy Thompson, de bron
Waar plaats je deze code?
toegevoegd de auteur Ry-, de bron
Wat betekent "mijn code is niet"? Krijgt u een foutmelding? Wat gebeurt er precies? Wat doet het wanneer u de foutopsporing gebruikt met een onderbrekingspunt op de regel If adtxt.Text ?
toegevoegd de auteur Ken White, de bron
ja dat werkt niet
toegevoegd de auteur user1473832, de bron
@Jeremy Thompson ..... Is de methode 2 in C# -code ???
toegevoegd de auteur user1473832, de bron
eigenlijk is er een knop op de 4e pagina van de website wil ik de focuscontrole op die knop brengen Dus ik gebruik deze code
toegevoegd de auteur user1473832, de bron

5 antwoord

Doe dit Me.WebBrowser1.Document.All.Item (textbox1.text) .Focus ()

maak een Textbox en dan als je wilt Spambot it easy Detecteert elke keer dat je Typ je schrijft en verstuurt

1
toegevoegd

Methode 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

Methode 2

I converted it to VB.Net from this MSDN thread: Focus issues with System.Windows.Controls.WebBrowser

U moet het ActiveElement in webBrowser.Document.ActiveElement.Focus() wijzigen in het tekstvak of de knop.

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

Methode 3

Een andere manier zou kunnen zijn om het in de HTML te doen, bijvoorbeeld:

OnLoad="document.myform2.mybutton.focus();"> 
0
toegevoegd

Laten we zeggen dat de html van je pagina is:

<button id="btn">Ok</button><input id="txt">


you can set focus in this way:

If adtxt.Text = "http://aojsl.com/dfassfeed2.php" Then
    webbrowser1.document.getelementbyid("btn").focus()
    webbrowser1.document.getelementbyid("txt").focus()
End If
0
toegevoegd
maar mijn programma kan geen identiteitskaart krijgen
toegevoegd de auteur user1473832, de bron

Another way:

use the GetElementsByTagName(TagName)

Laten we zeggen dat je html is:

<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


another one:

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()
0
toegevoegd
ik heb dit. controleer je bericht. :)
toegevoegd de auteur RedDm, de bron
misschien is je pagina niet volledig geladen en dan kun je de elementen niet bellen. stuur me de html van de pagina naar mijn e-mailadres: [email protected]
toegevoegd de auteur RedDm, de bron
stuur me een link naar de website.
toegevoegd de auteur RedDm, de bron
Gebruik de "SendKeys" niet, als u wilt dat uw programma werkt, roep dan het html-element. u kunt gewoon sendkeys.send ("{TAB}") verzenden, maar is niet de oplossing.
toegevoegd de auteur RedDm, de bron
geef me de html van je pagina en ik probeer mijn code aan te passen.
toegevoegd de auteur RedDm, de bron
Beide werken ook niet
toegevoegd de auteur user1473832, de bron
Ik denk van wel dat zijn oplossing is door de TAB-sleutel programmatisch te activeren. Maar ik ken de code niet voor het triggeren van de TAB-sleutel. Dus kunt u me vertellen hoe u TAb-toetsindrukken activeert Automatisch door programmacode ??
toegevoegd de auteur user1473832, de bron
Hoe kan ik u de HTML-pagina verzenden?
toegevoegd de auteur user1473832, de bron
Luister dat ik "System.Windows.Forms.SendKeys.Send (" {TAB} ") gebruik" maar het concentreert alleen het besturingselement op de eerste pagina van de website. Maar werkt niet op de 4e pagina van de website. Elke mening hierover ????
toegevoegd de auteur user1473832, de bron
ok dit is de link "www.aojsl.com"
toegevoegd de auteur user1473832, de bron
Op de eerste pagina moet je inloggen op de tweede pagina moet je een opdracht selecteren op de derde pagina moet je een formulier invullen en op de 4e pagina moet je op een knop drukken met de naam volgende
toegevoegd de auteur user1473832, de bron
Stuur keys.Send ("{TAb}") id werkend op de eerste pagina van de website. Y het werkt niet op de 4e pagina van de website
toegevoegd de auteur user1473832, de bron
Oké, ik stuur je een minuutje
toegevoegd de auteur user1473832, de bron
ok ik heb de mail naar u gestuurd. controleer de mail en vertel me of je de bestanden hebt ???
toegevoegd de auteur user1473832, de bron

Het selecteren van het selectie-element met behulp van de focusfunctie in vb.net. Bijvoorbeeld,

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

Dit zal de focus leggen op het element genaamd wachtwoord!

Gebruik Me.WebBrowser1.Document.All.Item ("YOURelement") om het juiste element te vinden en voeg vervolgens .Focus() toe om u te concentreren op degene die u wilt! : D

0
toegevoegd