Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Simpel browser i C#


Hej Rowl’ere.

Nu skal vi til at lave noget lidt interessant, nemlig en browser. Det lyder måske som et utroligt sygt projekt i dine ører, da der normalt kræves store grupper af programmører til at udvikle en sådan, men takket være et komponent fra Microsoft er det ikke sværere end at lave en trykknap. I hvert fald ikke hvis du følger artiklen her nøje.

Alt det grundlæggende om vores IDE blev forklaret i forrige artikel, og den går jeg ud fra du har læst. Derfor vil denne artikel kun fokusere på koden bag. Jeg har desværre ikke mulighed for at indsætte billeder i artiklen, da der åbenbart er noget galt med Hotserv. Det er der sgu altid ):

Start et nyt projekt. Det er fuldkommen ligegyldigt hvad du kalder det, men ”Browser” er meget passende (: Rul nu ned under W i din Toolbox, og lav et drag ’n’ drop med Webbrowser-komponentet på din form. Som standard fylder webbrowseren hele klientområdet, altså hele formen, og det skal den også. Rul op i ”Properties”-listen, og omdøb din browserkontrol til ”WB” (WebBrowser). Dette er ikke et nødvendigt trin hvis du fortsætter på egen hånd herfra, men det er nødvendigt hvis du bruger den kode, jeg har brugt i artiklen.

Find nu komponentet ”MenuStrip” i Toolbox’en, og dobbeltklik på det, så det bliver indsat i formen. Klik på pilen til højre for ”Type here”-etiketten, som fremkommer ved MouseOver, og vælg ”TextBox”. Klik på den nyoprettede tekstboks, og omdøb den til ”addr” vha. ”Properties”-listen. Så har vi de to grundlæggende objekter sat ind på vores form: Adressefeltet og browseren. Nu skal vi lige ordne en sidste lille bagatel, og så er vi klar til at programmere browseren, så den bliver mere brugervenlig. Tryk på din form, rul helt ned i ”Properties”-listen, og sæt ”WindowState” til ”Maximized”. Nu vil vores form automatisk maksimere, lige når den aktiveres. Dette synes jeg er smart, da en ikke-maksimeret browser som regel f*cker en hjemmesides design temmelig godt op. Tryk F5 og se dit program. Man kan nu indtaste sin adresse, men man kan ikke gå ind på den ved at trykke Enter, og det skal man selvfølgelig kunne. Det er her vi skal kode.

Tryk på adressefeltet i din form, og tryk på det lille orange lyn i din ”Properties”-liste. Dobbeltklik på KeyPress feltet. Du skulle nu gerne ryge ind i koden på din form, med en funktion lig denne:
  1. private void addr_KeyPress(object sender, KeyPressEventArgs e)
  2. {

  3. }
Alt, hvad vi skriver i denne funktion, vil blive behandlet, når man skriver i adressefeltet. Eller rettere, når man trykker på sit tastatur, mens der er fokus på adressefeltet. Selve parametrene i funktionen har jeg forklaret før, så dem går vi ikke igennem. For at forstå det følgende, kræver det vi går borer lidt dybere, og det gør vi så. Hver knap på dit tastatur har en talkode. Denne talkode bliver ændret af visse knapper som ALT, Shift og CTRL. Det er jo logisk nok, da Shift+a giver A, og da A er forskellig fra a må de selvfølgelig have hver sin talkode. Men det er ikke det, vi skal arbejde med. Du kan finde skemaer med disse talkoder på nettet. Return (der er forskel på Enter og Return, Return er den man normalt laver linieskift med, Enter er den der sidder til højre for num-pad’et, som også kan lave linieskift, men ikke desto mindre er det to forskellige knapper), har talkoden 13. Så vi skriver:
  1. private void addr_KeyPress(object sender, KeyPressEventArgs e)
  2.         {
  3.             if (e.KeyChar == 13)
  4.                 WB.Navigate(addr.Text);
  5.         }
Hvis ikke denne kode giver mening for dig, så har du ikke nok erfaring inden for programmering. Men det er jo en lidt barsk kommentar, og da dette er en artikel vil jeg gennemgå det alligevel.

”e” forklarede jeg i forrige arikel. KeyChar er et såkaldt ”medlem” af typen char, som indeholder talkoden på den sidst trykkede knap. Så, hvis talkoden er 13, lader vi browseren indlæse det, der står i vores adressefelt (addr).
”Navigate” er en funktion, som WB råder over. Den tager en streng som parameter. Denne streng er adressen på siden, vi vil indlæse.
”Text” er en streng, som addr råder over. Den indeholder teksten, der er skrevet i adressefeltet.

Prøv nu at køre dit program igen, og se om det virker. Indtast en adresse og tryk Return – eller Enter, som vi kalder den i daglig tale. Så har du din egen, køreklare browser. Det er selvfølgelig meget begrænset hvad den kan, men den er relativt nem at udbygge. Jeg vil dog ikke fortsætte artiklen med koder til dette, da det helt er op til dig selv, hvad den skal kunne. Men jeg kan give nogle forslag:

Lav en knap, så man ikke er tvunget til at trykke Return (Enter) for at indlæse en side.
Giv brugeren en advarsel, hvis vedkommende forsøger at indlæse en side uden at skrive noget i adressefeltet. Brug eventuelt MessageBox klassen til dette.
Lav en funktion, så titlen på formen skifter til den indlæste hjemmesides titel eller adresse.
Giv din form en menu, med nogle væsentlige punkter, fx et ”Vis kilde” punkt, eller et ”Afslut” punkt.

Mulighederne er talrige.

Hvis du synes, artiklen var lidt kort i det, kan jeg kun sige det skyldes, at det meste blev forklaret i forrige artikel, og at mange af tingene er genbrugt her. Sådan er det nemlig med C# (og en del andre sprog), hvis først man kan det grundlæggende, er der mange ting man kan udregne sig til. Specielt da C# IDE’en hjælper en med en stor del.

/dexo
Sidst redigeret 14:32 - 23/04/2007
Oprettet af:

Diverse

Point modtaget: 0

Rate:
20:05 21/04/2007

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
Kanon :-)
Oprettet af:
  Mail
18:17 28/04/2007
Jeg kan ikke finde nogen toolbox?
Før var den der, men nu forsvandt den.. hvad skal jeg trykke på for at den kommer frem igen?
Oprettet af:
  Mail
20:27 28/04/2007
Så trykker du Ctrl+X, som det fremgår i programmet.

Jeg vil være glad hvis I samtidig med at rate vil give en kommentar. Ikke at jeg ikke kan tage lave rates, men jeg vil godt vide hvad jeg kan gøre bedre.
Sidst redigeret 21:04 - 30/04/2007
Oprettet af:
  Mail
16:24 29/04/2007
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes