Hjælp til program

I dette forum kan du stille og svare på spørgsmål om C# programmering. Alle med en interesse for C# er velkommen!
Besvar
Societidog
Begynder
Indlæg:6
Tilmeldt:26. nov 2017, 14:52
Hjælp til program

Indlæg af Societidog » 8. dec 2017, 15:36

Hej
Sidder og øver mig i C# programmering og ville starte med noget let.
Så jeg fandt en video om at lave en google search app.
Jeg har lavet det men kan ikke få det til at fungere.
Og kan simplehen ikke finde fejlen.
Jeg vedhæfter projektet.
Håber der er en som kan hjælpe.
På forhånd Tak

Venlig hilsen Thomas
Vedhæftede filer
googlesearch.rar
(40.42KiB)Downloadet 529 gange

jepperask
Geni
Geni
Indlæg:378
Tilmeldt:4. nov 2012, 17:57

Re: Hjælp til program

Indlæg af jepperask » 8. dec 2017, 21:29

Jeg tror ikke din Form2_Load bliver kaldt - hvor har du den fra?

Hvis du i stedet overrider OnLoad eventet, virker det:

Kode: Vælg alt

protected override void OnLoad(EventArgs e)
{
    base.OnLoad(e);
    webBrowser1.Navigate("https://www.google.dk/search?q=" + stParams["address"]);
}

Societidog
Begynder
Indlæg:6
Tilmeldt:26. nov 2017, 14:52

Re: Hjælp til program

Indlæg af Societidog » 9. dec 2017, 00:03

Hej Jeppe

Jeg har taget det fra en video jeg har set. Det var for at prøve at forstå hvordan sådan noget med forms virkede.
Forstår ikke helt hvad det er du har gjort, men kan se det virker.
Derfor har jeg sat mig for at finde noget mere undervisning i programmering.
Jo mere jeg ser og prøver jo sjovere bliver det.
Så glad for at nemprogrammering.dk fik mig igang.
Det er ikke det sidste kursus jeg har taget på denne side.
Tak for det hurtige svar.


Venlig hilsen Thomas

jepperask
Geni
Geni
Indlæg:378
Tilmeldt:4. nov 2012, 17:57

Re: Hjælp til program

Indlæg af jepperask » 9. dec 2017, 12:17

Fedt at du er blevet interesseret - og jeg er helt enig, det bliver kun mere og mere spændende jo mere man lærer.

Her er en kort forklaring:

Din Form2.cs nedarver fra Form, som er en klasse Microsoft har lavet til Windows Forms. Den definerer en masse funktionalitet, så du ikke selv skal bygge det hele fra bunden. I Form-klassen er der defineret en række virtual metoder, som betyder at de må overrides af dig, som extender klassen.

OnLoad er en virtual metode som du kan override, da den er defineret således:

Kode: Vælg alt

protected virtual void OnLoad(EventArgs e);
protected betyder bare at metoden kun kan kaldes af klassen selv eller typer der extender klassen (lidt ligesom private).

Microsoft har allerede håndteret, at OnLoad bliver kaldt når vinduet 'loades'. Det fede ved nedarv er så at din Form2 klasse i princippet er en "Form" (altså Microsofts definerede form) og du kan så få lov til at specialisere præcist hvad der skal ske når OnLoad kaldes, og dette gør du ved at override den i din klasse.

Koden jeg skrev kalder først base.OnLoad(e);, hvor base er den klasse du nedarver fra. Det betyder egentlig bare at du først lader den gøre det den allerede er defineret til at gøre (en masse opsætning sikkert).
Bagefter (når vinduet er 'sat op') kan du så beskrive at der skal ske noget ekstra i eventet, altså at kalde Navigate på din webBrowser1-component.

Du kan læse lidt om det her: https://www.akadia.com/services/dotnet_ ... phism.html

Det er bestemt givet godt ud at sætte sig ind i lige præcist de her ting, da det er kernen af C# og objekt-orienteret programmering generelt. Skriv hvis du har flere spørgsmål. :-)

Besvar