WebBrowser a událost Click ?   zodpovězená otázka

VB.NET

Dobrý den, potřeboval bych poradit, jak docílím zachycení události kliknutí (myši) na komponentě webbrowser. Překvapivě jsem u ní nenašel žádnou událost Click, existuje tedy nějaké jiné řešení ? Děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dobry den nasiel som riesenie ale funguje iba po prvom kliknuty , teda ked na webbrowser kliknete raz tak prepehne udalost click ale dalsi krat uz nie. Tu je kod

Private Sub WebBrowser1_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles WebBrowser1.GotFocus
        MessageBox.Show("Click")
    End Sub

Neviem ci potrebujete aby fungovala ta udalost viackrat , ak ano napiste a ja sa to pokusim vyriesit :)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jo díky za nápad, leč je to taková "vochcávačka" xD, ale celkem bych potřeboval opakovaně "snímat klikání" a určitě to podle me pujde efektivněji ...

PS: ani strýček google mě nenasměroval :(

nahlásit spamnahlásit spam 0 odpovědětodpovědět

podarilo sa mi napisat niaky ten kod , treba si tam len dopisat do podmienky lokaciu webbrowseru teda ked sa zhoduje ze lokacia mysi je na webbrowseri tak vyskoci sprava ze mys klikla na webbrowser...

Public Class Form1

    Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
    Private Const VK_LBUTTON = &H1
    Private Const VK_RBUTTON = &H2

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        If GetAsyncKeyState(VK_LBUTTON) Then
            If WebBrowser1.Focus Then
                MsgBox("mys klikla na formular")
            End If
        End If
    End Sub
End Class

Je to pomocou globalneho odchytavania kliknuti mysi :) :D nic ine ma nenapadlo :D

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jo díky, to mě nakoplo, trochu si to jeste doupravim a snad se dostanu k tomu co potrebuji, takze zatim dik a pridavam ti hodnoceni za snahu ;-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

došiel som nato :D tu je kod:

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        WebBrowser1.Navigate("www.google.com")
    End Sub

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
        If WebBrowser1.ReadyState = WebBrowserReadyState.Complete Then
            WebBrowser1.Document.AttachEventHandler("onclick", AddressOf WebBrowser_Click)
        End If
    End Sub

    Sub WebBrowser_Click(ByVal sender As Object, ByVal e As EventArgs)
        MsgBox("klikli ste na webbrowser xDDDDDDDDDD")
    End Sub

End Class

ak sa nacita stranka spusti sa handler ktory zisti kedy sa kliklo na komponent webbrowser a vykona sa sprava s hlasenim :D

nahlásit spamnahlásit spam 3 / 3 odpovědětodpovědět

Hmm pěkné ;-) dobrá práce !

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tohle už jde, ta předchozí řešení byla dost hrozná - GotFocus se vyvolá jen v případě, že komponenta nemá focus a pak ho dostane, takže by to kromě kliků chytalo třeba i klávesu Tab.

To druhé zase spoléhalo na to, že se ve správnou chvíli zjistí stav myši, ale potíž je v té správné chvíli. Timer není nic přesného a klidně se může stát, že i když má nastavený interval 1, nespustí se každou milisekundu (mám dojem, že tam je síto nějakých 50ms, ale nejsem si jistý, kde jsem to četl) a klidně může mít i 500ms prodlevy podle toho, co zrovna systém a zejména dotyčné okno dělá.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback