Toon posts:

[c#] screens starten vanuit main class

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een main class. (duh) vanuit die klasse zou ik schermen willen starten. Echter, als ik dit doe met

code:
1
Application.Run(loginScreen);


houdt dit scherm mijn main thread vast en gaat de main thread pas verder als het scherm gesloten is. Nu zou ik graag allle events van die schermen in mijn main klasse afvangen en nog meerdere schermen starten.

Hoe kan dit nog anders?

code:
1
loginScreen.show

werkt ook niet, dan start het schem en sluit het direct.

  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 16-04 11:36

pjvandesande

GC.Collect(head);

Binnen je loginScreen anderen form tonen/starten?

Wat je ook wel is ziet is dat een login zo word gedaan:

C#:
1
2
3
4
5
6
7
8
9
10
FrmLogin login = new FrmLogin();

if(login.ShowDialog() == DialogResult.OK)
{
      IUser user = login.User;
      FrmMain mainForm = new FrmMain();
      mainForm.User = user;

      Application.Run( mainForm );
}

  • Vedett.
  • Registratie: November 2005
  • Laatst online: 22:45
C#:
1
2
3
4
5
6
7
8
9
Application.Run();

LoginForm frm1 = new LoginForm();
ApplicationAForm frm2 = new ApplicationAForm();
ApplicationBForm frm3 = new ApplicationBForm();

frm1.Show();
frm2.Show();
frm3.Show();


Nu nog zien dat je, je main methode correct afsluit. Dit kun je op verschillende manieren oplossen.
Overerving:
Erf alles over van één form, waarin je bijhoudt hoeveel forms je open hebt. Bij elk closed event check je of je aantal open forms 0 is. als die count 0 is -> Application.Exit() (ofzoiets).

In je main in een static int bijhouden hoeveel forms je open hebt, en check bij elk closed event de waarde van die int. Als die int == 0; Application.Exit()

  • H!GHGuY
  • Registratie: December 2002
  • Niet online

H!GHGuY

Try and take over the world...

Iets wat ik me afvroeg en wat wel in dit topic past.
kan deze code (evt met andere forms natuurlijk)?
C#:
1
2
3
4
5
6
7
8
LoginForm lf = new LoginForm();
lf.Event1 += new System.EventHandler(this.Event1Handler);
lf.Event2 += new System.EventHandler(this.Event2Handler);

Application.Run(lf);

if (this.IsLoginOK())
   Application.Run(new MainForm());

ASSUME makes an ASS out of U and ME