Toon posts:

[vb.net] functie extern uitvoeren mislukt

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een programma met 2 windows forms. Op de ene staat deze funtie:
Visual Basic .NET:
1
2
3
4
5
6
7
8
9
10
11
    Public Sub Do_GoOnline()
        online = True
        Dim regVersion As Microsoft.Win32.RegistryKey
        regVersion = (een lange regel)
        Dim username As String = regVersion.GetValue("fpmlu")
        Dim password As String = regVersion.GetValue("fpmlp")
        AxWebBrowser2.Navigate("een url ;)")
        StatusBar1.Panels(0).Text = "Status: Online"
        DataGrid1.Visible = True
        AxWebBrowser2.Visible = True
    End Sub
Hij is public en hij moet natuurlijk een aantal dingen uitvoeren of dit form (Form1). Nou zeg ik op Form2 dit:
Visual Basic .NET:
1
2
Dim frm As New Form1()
frm.Do_GoOnline()
Form1 bevat de code hierboven. Maar als ik het aanroep, gebeurt er niks, geen van alle dingen worden uitgevoerd. Als ik in de functie Do_GoOnline() bijvoorbeeld om de regel een msgbox() neerzet krijg ik ze allemaal te zien. Ik snap er niks meer van, waar ligt de fout? Want volgens mij hoort hij gewoon al die dingen uit te voeren toch?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Omdat die form1 nergens aan gekoppeld is.. 't is een loos object wat ergens rond in de ruimte zweeft.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
form1 is een windows form, waar nog meer functies e.d. in staan, die voert hij allemaal goed uit, maar er is 1 functie die ik van buitenaf wil aanroepen en dat gaat mis, hij voert de dingen die op form1 moeten veranderen niet uit (zoals de visible-change) maar de rest werkt..

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 29 August 2003 @ 10:42:
form1 is een windows form, waar nog meer functies e.d. in staan, die voert hij allemaal goed uit, maar er is 1 functie die ik van buitenaf wil aanroepen en dat gaat mis, hij voert de dingen die op form1 moeten veranderen niet uit (zoals de visible-change) maar de rest werkt..
Nee, dat is het niet. 't is geen Windows Form. Het is een class. Maar puur het aanmaken van een nieuwe class wil niet zeggen dat je gelijk een bestaande pagina te pakken hebt.

Je moet dus een reference maken naar de bestaande class / form, en geen nieuwe aanmaken. Maak je wel een nieuwe aan, dan moet je deze toevoegen aan de huidige controlcollection.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
doe anders eens
Visual Basic .NET:
1
2
Dim frm As New Form1()
frm.Show()

Dan snap je mischien wat je doet. Ik heb al heel vaak gezien dat vb proggers die overstappen naar vb.net denken dat forms enzo hetzelfde werken als in vb maar dat is dus totaal niet zo.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”