Avatar billede _et Praktikant
30. oktober 2004 - 11:43 Der er 11 kommentarer og
1 løsning

'System.OutOfMemoryException' efter tilføjelse af menu.

Jeg har lavet et program, og det virker fint.

Så tilføjede jeg en menulinje (file,edit,about,etc..), og så opstod følgende fejl.

An unhandled exception of type 'System.OutOfMemoryException' occurred in system.windows.forms.dll

Additional information: Error creating window handle.

Min debug, stopper i
Main(){Application.run program}

Jeg har ikke inkluderet noget kode, da jeg ikke ved hvor fejlen stammer fra. Hvis i vil se kode, så skriv.

Er der nogen der har en ide, til hvad eller hvorfor der sker?
Avatar billede arne_v Ekspert
30. oktober 2004 - 11:50 #1
Medmindre der er rimeligt lidt  memory tilgængeligt, så kunne det lyde
som f.eks. en utilsigtet rekursion der bare spiser memory indtil der ikke er
mere.

Men vi skal se noget kode for at komme videre.
Avatar billede _et Praktikant
30. oktober 2004 - 11:56 #2
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 14:06 #3
i min visual studio fixes det såldes:
i private void Interface_SizeChanged(object sender, EventArgs e), ændresfølgende to linier:

LV_Kunder.Width = _Interface.ActiveForm.Width - 50;
LV_Kunder.Height = _Interface.ActiveForm.Height - 300;

til :

LV_Kunder.Width = this.Width - 50;
LV_Kunder.Height = this.Height - 300;
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 14:08 #4
From.ActiveForm returnere en reference til den nuværende aktive form. Hvor this altid vil returnere den instans af formen _Interface som du har oprettet i main
Avatar billede _et Praktikant
30. oktober 2004 - 14:30 #5
prøver lige
Avatar billede _et Praktikant
30. oktober 2004 - 14:34 #6
Perfekt :-)

- kast et svar
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 14:35 #7
super
Avatar billede _et Praktikant
30. oktober 2004 - 14:48 #8
Et lille ekstra spm.

Hvordan fandt du ud af at fejlen lå der?

Et gæt, debug, eller grundlæggende kendskab til c# ?
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 14:54 #9
den var jo dybt underlig den fejl - jeg har ikke kigget ind på det, men jeg gjorde følgende:

1) gik ind i InitializeComponents metoden hvor alt bliver added til formen (da du jo sagde det virkede inden du lagde menuen på :o
2) Jeg tjekkede så lige om det var rigtigt det du sagde (sorry :D) ved at fjerne linien this.Menu = mainMenu1; - og det var rigtigt, så virkede det.
3) nå så ville jeg gå en tak længere ned, for at se om der var noget specielt i de items du havde added. Så jeg startede med at fjerne de to første menu fra main menu (programatisk ved at udkommentere dem i mainmenu1.Items.AddRange(..osvosv)).
4) men så kom der en ny fejl : NullRefernece i OnChangeSize, så den fixede jeg (da jeg i debuggeren så at ActiveForm var null.
5) så prøvede jeg at køre programmet i dets oprindelige form, også virkede det sq !

...man kunne måske også ha sat en try catch rundt om application.run, og så catche den specifikke fejl "outofmemory". Så sætte et breakpoint i catch'en og se på stacktracet, hvor det gik galt - sådan plejer jeg bare ikk at gøre. Jeg startede egentlig også med at søge på nettet, men efter 2 minutter gad jeg ikke mere - det var meget forskellige i hvilken forbindelse forlk havde setproblemet

4)
Avatar billede _et Praktikant
30. oktober 2004 - 14:59 #10
ok.

Jeg havde ingen ide, om hvor jeg skulle starte, da det var vs selv der havde skrevet koden til menu - (så må man jo gå ud fra den er rigtig)

Det var faktisk en glimrene ide, med en try uden om app.run - den vil jeg lige huske.

Tak for hjælpen.
Avatar billede sovsekoder Nybegynder
30. oktober 2004 - 15:04 #11
np :)

ang. den med try catch rundt om application.run, bør man kun bruge når man prøver at finde fejlen (og jeg ved ikke engang om den vil ha' fundet den i dette tilfældet, men ellers er den go' nok!). At fjerne en fejl med en tom catch handler, kan ikke anses som et "fix" - fordi at det kan jo være at der ligger en lummer dej og lugter et sted i koden (læs: der er måske en alvorlig fejl som bør rettes).

Skriver det bare for go' ro og ordens skyld - i den bedste mening :D
Avatar billede _et Praktikant
30. oktober 2004 - 15:07 #12
:-)

Helt i orden
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester