Avatar billede karryen Nybegynder
06. januar 2006 - 09:48 Der er 9 kommentarer og
1 løsning

Form skal udføre kommando, når en anden bliver lukket

Hej,

Hvordan får jeg en form til at udføre en kommando, når en anden form bliver lukket?
Avatar billede bernhof Nybegynder
06. januar 2006 - 10:57 #1
Der er forskellige måder at gøre det på, alt efter hvornår og hvordan din form bliver åbnet i første omgang.

Formen, som lukkes -- bliver den åbnet af formen, som skal udføre en kommando, eller hvordan? Uddyb venligst en smule :)
Avatar billede karryen Nybegynder
06. januar 2006 - 11:45 #2
Lad os kalde dem form1 og form2

På form1 har en en knap der åbner form2, og ikke lukker sig selv. På form2 har jeg så en knap til at lukke sig selv (me). Når jeg tykker på den knap, vil jeg gerne eksekvere en kommando på form1.
Avatar billede bernhof Nybegynder
06. januar 2006 - 12:29 #3
Ok. Hvordan åbner du form2? Med .Show() eller .ShowDialog()?

Hvis du åbner med .ShowDialog(), er det bare et spørgsmål om at placere koden, som du vil udføre, lige efter .ShowDialog().

Hvis du åbner med .Show(), skal der lige lidt mere til. Inden du kalder Show(), skriv følgende linie:

    AddHandler form2.Closed, AddressOf Form2_Closed

Og opret desuden følgende metode:

  Private Sub Form2_Closed(ByVal sender As Object, ByVal e As EventArgs)
    RemoveHandler CType(sender, Form).Closed, AddressOf Form2_Closed

    'koden som skal udføres når form2 lukkes, placeres her..
  End Sub

Se om det virker.
Avatar billede bernhof Nybegynder
06. januar 2006 - 12:34 #4
Eksempel på åbning af Form2 (ShowDialog):

  Dim f As New Form2
  f.ShowDialog()
  'Placer kode som skal udføres her

Eller (Show):

  Dim f As New Form2
  AddHandler f.Closed, AddressOf Form2_Closed
  f.ShowDialog()
Avatar billede karryen Nybegynder
06. januar 2006 - 13:17 #5
ja okay. JEg bruger .show()

hvad nu når jeg vil have koden eksekveret i form1?
Avatar billede bernhof Nybegynder
06. januar 2006 - 13:59 #6
Hov, skrev lige forkert. Hvis du åbner med show skal du skrive følgende når du åbner form2 (for eksempel):

  Dim f As New Form2
  AddHandler f.Closed, AddressOf Form2_Closed
  f.Show()

og et andet sted i form1 lave Form2_Closed metoden, som jeg beskrev tidligere. I den metode placerer du så koden som du vil have udført, når form2 lukker..
Avatar billede karryen Nybegynder
06. januar 2006 - 14:52 #7
nu har jeg ikke programmeret så lang tid. Hved mener du med at jeg skla lave en metode?

Kan du give et eksempel?
Avatar billede bernhof Nybegynder
06. januar 2006 - 15:17 #8
Hehe, det betyder bare at du skal copy/paste følgende kode in i koden til form1:

  Private Sub Form2_Closed(ByVal sender As Object, ByVal e As EventArgs)
    RemoveHandler CType(sender, Form).Closed, AddressOf Form2_Closed

    'koden som skal udføres når form2 lukkes, placeres her..
  End Sub
Avatar billede karryen Nybegynder
08. januar 2006 - 13:16 #9
Herligt, det virker nu. Mange tak for din hjælp, og undskyld for mit langsomme svar. Smid et svar så du kan få noget point
Avatar billede bernhof Nybegynder
08. januar 2006 - 23:25 #10
Godt at det virker :) Det var så lidt.
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