23. VB.Net Własna Przeglądarka Internetowa

Własna Przeglądarka Internetowa


Witam po dłuższej przerwie, czas na obiecany następny dział naszego poradnika. Dziś dowiemy się co nieco o kontrolce Picturebox oraz zbudujemy sobie własną przeglądarkę do przeglądania sieci.
Na początku otwórzmy sobie nowy projekt i dodajmy do niego PictureBox. Ustawmy sobie go na samej górze formy i rozciągnijmy jego krańca z obu stron.


Ja ustawiłem mu kolor ControlDarkDark a później zmieniłem z powrotem na Control bo nie pasowały grafiki :)
To będzie nasza podstawa do rozmieszczania następnych kontrolek.
Dodajmy następne PictureBox'y, które będą służyły jako przyciski naszej przeglądarki. Jak pewnie zauważyliście nie tylko Button ma obsługę zdarzenia Click. 
Dodajemy obrazek, który będzie symbolizował nam funkcję, którą ten przycisk ma wykonać. (np. powrót do wcześniejszej strony - strzałka w lewo). W properties naszego pictureboxa odnajdujemy właściwość Image i tu wybieramy obraz, który nasz PictureBox ma wyświetlić. Będzie to wyglądało mniej więcej tak:
Jak zatwierdzimy nasz obrazek to może się okazać, że jest za duży i nie widać go w naszym PictureBox'ie. Dlatego zaznaczyłem drugą strzałką właściwość SizeMode którą trzeba zmienić na StretchImage. Dzięki temu nasz obrazek będzie widoczny zawsze i dostosuje swoją wielkość do rozmiaru PictureBox'a. W ten sposób zrobiliśmy przycisk "Do tyłu".
Zróbmy tak samo dla reszty naszych PictureBox'ów tzn dla przycisku "Do przodu", "Idź". Po środku umieścimy pasek adresu, w którym będziemy wpisywać adresy stron, do tego paska posłuży nam zwykły TextBox. Będzie to wyglądać mniej więcej tak:


Teraz czas na ożywienie naszej przeglądarki.Wstawmy na formę kontrolkę WebBrowser i rozciągnijmy ją na całą formę pod naszymi przyciskami. Potrzebny nam będzie jeszcze jakiś kod, który będzie wykonywał zamierzone przez nas zadania. Pamiętajmy, aby nasze pictureboxy odpowiednio nazwać, będzie to kluczowe w by posługiwać się nimi w kodzie. Moje nazwy ty:
PbGo - Idź
PbRefresh - Odśwież
PbBack - Do tyłu
PbForward - Do Przodu
TxbAdres - Pasek adresu
WBrowse - okno przeglądarki

Piszemy kod dla przycisku PbGo:

    Private Sub PbGo_Click(sender As Object, e As EventArgs) Handles PbGo.Click
        WBrowse.Navigate(TxbAdres.Text)
    End Sub

Sprawdźmy czy działa. Uruchamiamy nasz program wciskając F5 lub przyciskiem Start w naszym Visual Studio.
Jeśli wszystko zrobiliście tak jak ja otworzy się program i będzie można już otwierać strony np wp.pl.
Czas na następne przyciski:

    Private Sub PbRefresh_Click(sender As Object, e As EventArgs) Handles PbRefresh.Click
        WBrowse.Refresh()
    End Sub

    Private Sub PbBack_Click(sender As Object, e As EventArgs) Handles PbBack.Click
        WBrowse.GoBack()
    End Sub

    Private Sub PbForward_Click(sender As Object, e As EventArgs) Handles PbForward.Click
        WBrowse.GoForward()
    End Sub

Proste prawda? Można zmusić kontrolkę WebBrowser, aby pokazała nam pełny adres w naszym TextBox'ie jeśli strona, której adres wpisaliśmy się w pełni otworzy. WebBrowser oferuje nam procedurę DocumentCompleted i w tej procedurze wpiszmy poniższy kod:

    Private Sub WBrowse_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WBrowse.DocumentCompleted
        TxbAdres.Text = WBrowse.Document.Url.AbsoluteUri
    End Sub

Pokaże wam jeszcze jedną fajną opcję, można zrezygnować z TextBox'a na rzecz ComboBoxa uzyskując dzięki temu możliwość zapisywania ostatnio oglądanych stron w danej sesji przeglądarki.

Wywalmy zatem TextBox'a i wstawmy ComboBox'a i nazwijmy go CmbAdres. Wróćmy jeszcze do procedury DocumentCompleted i dopiszmy do niej kod:

    Private Sub WBrowse_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WBrowse.DocumentCompleted
        CmbAdres.Text = WBrowse.Document.Url.AbsoluteUri
        CmbAdres.Items.Add(WBrowse.Document.Url.AbsoluteUri)
    End Sub

Teraz jak będziemy przeglądać kolejne strony to będą się one zapisywać w Itemach ComboBox'a i będzie można do nich wrócić otwierając listę rozwijaną.

Przy okazji pokaże wam jeszcze jak uprościć przeglądanie programując przycisk Enter na klawiaturze tak aby bez klikania myszą na przyciski rozpoczynało się ładowanie strony. Do tego celu posłużymy się procedurą KeyPress dla ComboBox'a. Napiszemy kod:

    Private Sub CmbAdres_KeyPress(sender As Object, e As KeyPressEventArgs) Handles CmbAdres.KeyPress
        If e.KeyChar = Convert.ToChar(Keys.Enter) Then
            WBrowse.Navigate(CmbAdres.Text)
            e.Handled = True
        End If
    End Sub

Całość wygląda tak :

Pobawmy się jeszcze samą formą. Ponieważ maksymalizując naszą formę chcielibyśmy aby nasze kontrolki dopasowywały swój rozmiar do aktualnego rozmiaru okna. Można to zrobić za pomocą właściwości kontrolki Anchor. Weźmy na warsztat nasze przyciski "odświeżania" i "idź" zaznaczmy je oba i uruchamiamy w properties właściwość Anchor. ustawiamy: Top, Right jak na zdjęciu poniżej:
ComboBox ustawiamy: Top, Left, Right
WebBrowser ustawiamy: Top, Bottom, Left, Right
Teraz nasza przeglądarka zaczyna pracować jak należy.

Jak widać opcji do zaprogramowania jest cały ogrom i to co będziemy chcieli mieć w swojej przeglądarce to już tylko kwestia naszej wyobraźni i oczywiście wiedzy :) Ja na tym zakończę ten dział poradnika. Zapraszam również do następnego w mam nadzieję niedalekiej przyszłości.
Wszystkie grafiki użyte w programie pobrane ze strony IconFinder.com


Opublikowano 06.05.2016

3 komentarze:

  1. Super opis. Zrobiłem, działa :) jedyny minus to te debugowanie stron :(
    Oby więcej takich tematów.
    Ja czekam na "Program aktualizujący inny program" i "Trial Version" - najlepiej z podaniem klucza po dacie.
    Pozdrawiam
    andrew

    OdpowiedzUsuń
  2. 31 year-old VP Accounting Isa Kleinfeld, hailing from Clifford enjoys watching movies like Donovan's Echo and hobby. Took a trip to St Mary's Cathedral and St Michael's Church at Hildesheim and drives a 4Runner. przeczytaj ten artykul

    OdpowiedzUsuń
  3. Tworzenie własnej przeglądarki internetowej to ambitne przedsięwzięcie, które wymaga zaangażowania i wiedzy z zakresu programowania. Jest to fascynująca możliwość stworzenia narzędzia, które dostosuje się do indywidualnych preferencji i potrzeb użytkownika.

    OdpowiedzUsuń