Avatar billede henrikgn Nybegynder
24. januar 2005 - 13:35 Der er 11 kommentarer og
1 løsning

Flere forms - kald af metode

Hej eksperter

Bruger VS.NET til en lille applikation med 2 forms. På den ene form er der en metode, der viser en MessageBox samt en metode til at åbne den anden form (som click-event for en knap), som vist herunder:

//Kode til form1:
public void Tester()
{
  MessageBox.Show("Tester() er kaldt!");
}

private void btnOpen_Click(object sender, System.EventArgs e)
{
  Form frmForm2 = new Form2();
  frmForm2.ShowDialog();
}

På form et har jeg så en knap, med hvilken jeg gerne vil kunne kalde Tester() som ligger under form1. Hvordan dælen gør jeg det?

Begge forms har samme namespace, men forskellige klasser - hhv. Form1 og Form2.
Avatar billede henrikgn Nybegynder
24. januar 2005 - 13:39 #1
Der skulle selvfølgelig stå:

På form 2 har jeg så en knap, med hvilken jeg gerne vil kunne kalde Tester() som ligger under form1.
Avatar billede arne_v Ekspert
24. januar 2005 - 13:46 #2
Så skal Form2 klassen indeholde en reference til Form1 objektet.

Eller Tester skal erklæres static så du kan kalde den på klasse fremfor instans.
Avatar billede arne_v Ekspert
24. januar 2005 - 13:47 #3
Form frmForm2 = new Form2(this);

og

...
private Form1 f1;
public Form2(Form1 f1)
{
    this.f1 = f1;
}
...
Avatar billede arne_v Ekspert
24. januar 2005 - 13:48 #4
Eller

public static void Tester()
..

og

Form1.Tester();
Avatar billede henrikgn Nybegynder
24. januar 2005 - 14:04 #5
Helt perfekt. Laver metoden public static så. Smid et svar.
Avatar billede arne_v Ekspert
24. januar 2005 - 14:09 #6
svar
Avatar billede burningice Nybegynder
24. januar 2005 - 16:03 #7
hvis det er funktioner der ikke decideret har relation til formen, så kan du også lægge alle disse "helper"-funktions ud i en klasse for sig.
Avatar billede snoozie Nybegynder
27. januar 2005 - 18:40 #8
Hvordan får man fx en int til at fungere i begge Forms? lægge den ind i en klasse? Det er ikke nok med at gøre den public.
Avatar billede snoozie Nybegynder
27. januar 2005 - 18:46 #9
Og hvordan lukker man kun den ene Form?
Avatar billede burningice Nybegynder
27. januar 2005 - 18:49 #10
en int til at fungere i begge forms? Please explain a litte more.

Lukker den ene form? ditFormObject.Close();
Avatar billede snoozie Nybegynder
27. januar 2005 - 18:56 #11
Int: Fx trykker man på en knap i den første form, så kommer en ny form op hvor man skal vælge et tal, og så lukker formen, og så viser en label hvad tal man har valgt.

Jeg er ny med det med forms, så jeg er ved at prøve nogle forskellige ting.
Avatar billede burningice Nybegynder
27. januar 2005 - 19:26 #12
1) du kan føre en reference til form1 med over i form2 når du opretter den
2) du kan have en HelperClass der holder styr på alle de informationer der skal være delt mellem dine forme
3) du kan have en FormManager der holder styr på alle forme du har åbnet så alle kan skaffe en reference til alle gennem denne manager
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