Avatar billede bierchen Nybegynder
16. november 2004 - 10:36 Der er 11 kommentarer og
1 løsning

Tilføjelse af dynamiske menuitems forårsager argumentexception

Hej

Jeg har en main menu hvor jeg dynamisk tilføjer nogle menuitems.

Mine funktioner der tilføjer disse menuer fungerer fint. Når jeg så lukker og åbner min form igen (Og indlæser menuerne igen), så kommer følgende fejl, når jeg kører menu.menuitems.add(nymenu):

"An unhandled exception of type 'System.ArgumentException' occurred in System.Windows.Forms.dll
Additional information: ArgumentException"

Ovenstående er en PDA applikation

Er der nogen der kan hjælpe
Avatar billede burningice Nybegynder
16. november 2004 - 13:07 #1
lidt mere kode kunne måske hjælpe lidt
Avatar billede bierchen Nybegynder
16. november 2004 - 18:36 #2
Jeg er igang med at brygge på noget ;)
Avatar billede bierchen Nybegynder
20. november 2004 - 19:41 #3
Jeg har 2 forms og et modul

I modulet har jeg erklæret en global variabel:
Public Glo_MenuArrayList As New ArrayList

Form1:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim NyMenu As New MenuItem
        NyMenu.Text = "Test"
        Glo_MenuArrayList.Add(NyMenu)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim form2 As New Form2
        form2.ShowDialog()
End Sub

Form2:
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        MainMenu.MenuItems.Add(Glo_MenuArrayList.Item(0))
End Sub

Når jeg åbner form2 2. gang, så får jeg fejlen:
"An unhandled exception of type 'System.ArgumentException' occurred in System.Windows.Forms.dll
Additional information: ArgumentException"
Avatar billede burningice Nybegynder
22. november 2004 - 17:38 #4
MainMenu i form2... hvad er det?
Avatar billede bierchen Nybegynder
22. november 2004 - 19:07 #5
Det er en mainmenu Control, som er hentet ind fra ToolBoxen
Avatar billede burningice Nybegynder
23. november 2004 - 13:29 #6
og første gang du loader form2 bliver dit menuitem tilføjet uden problemer?
Avatar billede bierchen Nybegynder
23. november 2004 - 20:52 #7
ja, men når jeg så lukker formen, og åbner den igen. Så kommer fejlen
Avatar billede burningice Nybegynder
24. november 2004 - 15:00 #8
prøv at udskift

MainMenu.MenuItems.Add(Glo_MenuArrayList.Item(0))

med

MessageBox.Show(Glo_MenuArrayList.Item(0).ToString())

og prøv så at åbn formen et par gange
Avatar billede bierchen Nybegynder
24. november 2004 - 17:18 #9
Når jeg åbner formen skriver den "system.windows.forms.menuitem"

Og det gør den hver gang.

Gør jeg så sådan:
        MessageBox.Show(Glo_MenuArrayList.Item(0).ToString())
        MainMenu.MenuItems.Add(Glo_MenuArrayList.Item(0))

Så kommer fejlen igen 2. gang, og teksten der skrives på skærmen er den samme hver gang. = (system.windows.forms.menuitem)
Avatar billede bierchen Nybegynder
07. december 2004 - 23:37 #10
Jeg lukker spørgsmålet nu. Jeg har omgået problemet, ved at overføre menuernes egenskaber i et array som string værdier istedet.

Jeg tror at det er Garbage collectoren som rydder op i den globale variabel.

Mange tak for hjælpen.
Avatar billede burningice Nybegynder
08. december 2004 - 11:09 #11
hm... kan godt være... at lave et modul med en variabel i vb.net, svarer det til at lave en klasse med en static variabel i c#?
Avatar billede bierchen Nybegynder
11. maj 2007 - 23:56 #12
luk
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
Kurser inden for grundlæggende programmering

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