Webbrowser   otázka

VB.NET, WinForms

dobry den ve VB - 2008 express mam WebBrowser1 a chtel bych nejak nastavit ze kdyz pres ten webbrowser najedu na urcitou stranku (napr.: www.seznam.cz) tak se mi zobrazi MSG box s nejakou spravou

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

WebBrowser má událost DocumentCompleted. Hlídejte jí a pak můžete při načtení stránky dělat cokoliv. Zobrazí MsgBoxu s Url například:

MessageBox.Show(e.Url.ToString())
nahlásit spamnahlásit spam 0 odpovědětodpovědět

dekuju , ale ja potrebuju MSG box na urcite strance (napr.seznam.cz)

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

Kdybyste se na to, co jsem Vám poslal, podíval pořádně, věděl byste, že to jde. Když ošetříte tu událost DocumentCompleted, vytvoří se Vám handler podobný tomuto:

Sub WebBRowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    ' Obsluha události
End Sub

Všimněte si, že handleru je předán parametr 'sender', což je ten WebBrowser a 'e', což je třída dědící EventArgs, která zapouzdřuje dodatečné informace k události. V tomto případě má veřejnou vlastnost zvanou Url, která je typu System.Uri. Tento typ se používá k zapouzdřední a validaci adresy v síti Internet.

Co tedy můžeme zjisti, když nastane událost? Z Uri můžeme zjisti o adrese mnoho informací, například port, host, query, fragment atd. Nás zajímá host (pro http://www.seznam.cz/ je host "www . seznam . cz" bez mezer )

Sub WebBRowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    ' Obsluha události
    Dim host = e.Url.Host
    If host = "www.seznam.cz" Then
        MessageBox.Show("...")
        ' Případně MsgBox("...") pokud trváte na přežitcích z VB6
    End If
End Sub

Kód může obsahovat malé chyby, netestoval jsem jej, ale měl byste být schopný jej opravit, pokud tam nějaké budou. Také si jej rozšiřte, aby odchytit i Host typu "seznam.cz" (bez www).

EDIT: Všiml jsem si, že používáte verzi 2008. Zam myslím je nutné specifikovat ByVal u paramterů. Pokud máte tedy WebBrowser1_DocumentCompleted(sender As Object, e As ...) upravte to na "...(ByVal sender As Object, ByVal e As ...".

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

mockrat dekuju za vysvetleni ... (nejsem moc skuseny s VB)

jestly muzu dalsi otazku ,tak co ste myslel tim

:' Případně MsgBox("...") pokud trváte na přežitcích z VB6:

existuje jeste neco jineho nez MSG box ???

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

Ale jistě, od toho tu fórum je :)

Ano, jak je vidět z kódu, dá se použít MessageBox.Show() a MsgBox(). Teď záleží na tom, na co referujete slovy "msg box". Pokud jde okno se zprávou, jde o obojí, jak o MessageBox.Show() tak o MsgBox(). Dá se tím ale i myslet jen a pouze funkce MsgBox, která je v .NET frameworku považována za zastaralou, a je doporučováno nahrazovat ji právě zmíněnou MessageBox.Show(). MsgBox je ještě z dob VB6. Ovšem co si budeme povídat, MsgBox je kratší a v začátcích to většinou používá každý, takže já se musím přiznat, že jí používám častěji, než MessageBox.Show().

Obecně se dá říct, že při debugování (testovacím spuštění programu během vývoje) nevadí používá MsgBox, protože většinou zobrazují informace, které jsou pouze pro vývojáře a při sestavení jsou buď nahrazeny MessageBox.Show() či vypuštěny kompletně (a nahrazeny nějaký error loggingem a podobně).

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