Avatar billede Slettet bruger
12. maj 2005 - 13:17 Der er 9 kommentarer og
1 løsning

Fjerne parent form når child vises

Hejsa,

Ved ikke helt om overskriften er sigende for mit spørgsmål, men jeg vil høre om det er muligt kun at vise en enkelt formular ad gangen.

Jeg har en formular med en menu, der trikker en anden formular (inherited form), der så vises.
Det virker fint, men den form der vises når man klikker på menupunktet vises oven i den anden form.
Kan man fjerne hovedformularen og kun fremvise den formular der kaldes? Og hvordan?

På forhånd tak!
Avatar billede spif2001 Nybegynder
12. maj 2005 - 13:44 #1
Kan du ikke bare sætte formens Visible property til false inden du viser den nye Form?

-og når du lukker den nye Form, så sætte Visible tilbage til true...
Avatar billede Slettet bruger
12. maj 2005 - 14:25 #2
Jo, det kunne man måske godt gøre. Men er der ikke en metode hvormed man simpelthen nedlægger den anden form. Den er jo godt nok start-up form, men da de andre er nedarvede fra den kunne man måske køre videre med dem så der hele tiden kun en én form i gang???

Den måde du foreslår der kræver vel så også, at man hele tiden skal holde styr på hvornår den nye form lukkes ned så man kan sætte visibility til true igen?
Avatar billede eyesonly Nybegynder
12. maj 2005 - 14:36 #3
du kan jo bare kalde Dispose() på den...den nedlægger i i hvert fald formen
Avatar billede spif2001 Nybegynder
12. maj 2005 - 14:44 #4
Den nye form kunne jo tage den gamle form som inparameter og så sætte visibilty til true i OnClose() eventet.

thomasso --> hvis han kalder dispose på den gamle form, vil den nye form ikke også blive nedlagt?
Avatar billede eyesonly Nybegynder
12. maj 2005 - 14:48 #5
jeg ved ikke helt om dispose lukker evt. childs...

Men gør som spif siger, det er vist den mest optimale løsning...så behøver du ikke selv holde styr på hvornår du lukker en child!
Avatar billede spif2001 Nybegynder
12. maj 2005 - 14:58 #6
Hedder ikke OnClose(), men Closing()... ups

og en ups mere - det var jo eyesonly der snakkede om dispose og ikke thomasso.

har vist en dårlig dag - er også lige kommet mig over en 3 dages feber, eller måske ikke... ;)
Avatar billede Slettet bruger
12. maj 2005 - 18:30 #7
Pis. Jeg glemte vidst at skrive at jeg er totalt lysegrøn i windows forms...
Har roddet en smule med ASP.NET, men altså ikke med forms.
Jeg har fået lavet en mainform og nogle nedarvede forms, alle med en menustruktur, men aner ikke hvad i snakker om lige nu :-)

Jeg kan forøvrigt ikke kalde en Dispose() fra onclickfunktionen og heller ikke Closing().
Kan i evt. komme lidt nærmere ind på præcis hvad en tumpe som jeg skal gøre for at få dette til at lykkes?
Avatar billede spif2001 Nybegynder
12. maj 2005 - 20:06 #8
//MainForm:

public MainForm()
{
  InitializeComponent();
}

private void button1_Click(object sender, System.EventArgs e)

  this.Visible = false;
  SubForm subF = new SubForm(this);
  subF.Show();
}

//SubForm:
private MainForm owner;//Global variabel

public SubForm(MainForm mf)
{
  this.owner = mf;
  InitializeComponent();
}

void SubFormClosing(object sender, System.ComponentModel.CancelEventArgs e)
{
  this.owner.Visible = true;
}


Husk at sætte closing eventet i designeditoren til SubFormClosing...
Avatar billede Slettet bruger
13. maj 2005 - 10:40 #9
spif2001, mange tak for dit svar! Det er klasse og det virker fint. Jeg skulle lige søge lidt efter hvor man lavede en event i design editoren, men så har jeg også lært det nu :-)
Avatar billede spif2001 Nybegynder
13. maj 2005 - 11:56 #10
anytime :)
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