[c#] WinForm tekent niet

Pagina: 1
Acties:

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Topicstarter
Hallo allemaal

Ik heb hier een probleem waar behoorlijk wat code achter zit dus ipv al mn code te pasten ga ik het proberen schematisch uit te leggen.
code:
1
2
3
MainApp > serverListener > (thread) > myForm
                        > myForm
                        > myForm

MainApp maakt dus een nieuwe serverListener object aan die in de constructor een nieuwe thread start met een UDP client erin (dit maakt overigens niet veel uit). Het serverListener object krijgt overigens een incomingFileHandler delegate mee met als target een private methode van this (een instantie van MainApp dus).

Ik moet wel even erbij vermelden dat MainApp ook een WinForm is die bij het starten geminimaliseerd wordt en niet wordt weergeven in de taakbalk en alleen een NotifyIcon als 'interface' heeft. Ik weet niet of dit wat uitmaakt.

Nu wil ik IN deze delegate een nieuwe WinForm laten openen
code:
1
2
myForm f = new myForm();
f.Show();

Maar ik krijg dit als resultaat (zoals je kan zien wordt het gehele venster niet getekend).

Mijn gok is dat de thread gestart door serverListener teveel CPU in beslag neemt om myForm() de kans geven ze events goed af te handelen, maar ook de prioriteit van die thread op laag zetten lukt niet.

Overigens is het niet zo dat de thread blijft wachten tot myForm gesloten is want uit mn debug log blijkt dat de thread weer verder gaat met luisteren nadat het venster geopend is:
code:
1
2
3
4
5
** SERVER - waiting for request
** SERVER - got request from 127.0.0.1:8081
// hier wordt het venster geopend en blijft open
** SERVER - waiting for request // we gaan weer verder
                      // met het venster open

Als ik ipv myForm.Show() myForm.ShowDialog() gebruik, wordt het weer wel goed gedaan maar dan stopt de server met het luisteren naar binnenkomende requests totdat het venster gesloten is (logisch).

Ik heb ook geprobeerd om een nieuwe thread te maken en daarin een nieuwe instantie van myForm, maar dit werkt ook niet.

Weet iemand hoe ik dit probleem oplos?

Alvast bedankt

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Ik zit hier met _exact_ hetzelfde probleem. Het gaat hier om een MSN client (bij die van jou ook denk ik?).

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Topicstarter
Nope geen MSN cliënt, ben gewoon als oefening een p2p file-sharing app aan het schrijven.

Waar ben jij dan mee bezig? MSN client in C#?

  • Limhes
  • Registratie: Oktober 2001
  • Laatst online: 19-08 19:06
Jah, althans dat is de bedoeling...
Nu issie nog een console app, maar hij moet dus een interface krijgen waardoor ik wanneer ik wil een commando kan geven en een textbox zie met binnenkomende regeltjes...

Lukt al aardig maar dat grafisch gedeelte niet, om de reden die jij al aangaf :(

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Topicstarter
*schop*

  • stylee
  • Registratie: December 2000
  • Laatst online: 04-09-2021

stylee

blah zeg ik je

Topicstarter
ok hebbes (antwoord op usenet):
code:
1
2
myForm f = new myForm();
Application.Run (f);

schijnt te werken, geen id waarom :P
Pagina: 1