login  Naam:   Wachtwoord: 
Registreer je!
 Forum

[C#] control painten pas na MessageBox (Opgelost)

Offline Ultimatum - 14/12/2009 15:10
Avatar van UltimatumPHP expert Ik heb een heel vreemd probleem, ik heb een panel waar ik wat in moet painten, maar dit werkt alleen als ik een MessageBox.Show("") eronder zet.

Ik heb de volgende methode:

  1. public void placeShip(Point oIndex)
  2. {
  3. this.resetGameField();
  4.  
  5. foreach (GameFieldPoint oGameFieldPoint in this._oSelectedShip.shipPoints)
  6. {
  7. if (oGameFieldPoint != null)
  8. {
  9. oGameFieldPoint.type = GameFieldPointType.ship;
  10. }
  11. }
  12. }


En zo roep ik de methode aan:
  1. private void gameField1_MouseClick(object sender, MouseEventArgs e)
  2. {
  3. switch (e.Button)
  4. {
  5. case MouseButtons.Left:
  6. Point oPosition = this.gameField1.getIndex(e.X, e.Y);
  7. this.gameField1.placeShip(oPosition);
  8. this.gameField1.Invalidate();
  9. break;
  10. }
  11. }


Als ik nu klik dan gebeurd er helemaal niets, maar wijzig ik het eerste blok code naar onderstaande dan werkt het wel. Ik zie niet waarom het die MessageBox het verschil maakt.

  1. public void placeShip(Point oIndex)
  2. {
  3. this.resetGameField();
  4.  
  5. foreach (GameFieldPoint oGameFieldPoint in this._oSelectedShip.shipPoints)
  6. {
  7. if (oGameFieldPoint != null)
  8. {
  9. oGameFieldPoint.type = GameFieldPointType.ship;
  10. }
  11. }
  12.  
  13. MessageBox.Show("")
  14. }


Denk dat dit voldoende code is, maar als er meer nodig is laat het dan maar weten. Hopelijk kan iemand mij snel een antwoord geven.

2 antwoorden

Gesponsorde links
Offline Abbas - 14/12/2009 15:43
Avatar van Abbas Gouden medaille

Crew .NET
Doe in de plaats van die MessageBox gewoon eens:

  1. return;

Misschien helpt dat?
Bedankt door: Koen
Offline Ultimatum - 14/12/2009 16:57 (laatste wijziging 15/12/2009 12:11)
Avatar van Ultimatum PHP expert zal het zo even testen of dat werkt. Ben er net weer mee bezig geweest, maar de return werkt niet. Ik weet echter wel hoe het komt. Ik ben bezig met het spel zeeslagje, en eerst draw ik de boot op het veld in de mouse move en dan reset ik alle vakken weer terug naar sea (is dan blauwe achtergrond) en de vakken die ik heb geselecteerd met de boot zijn dan andere kleur.

Als ik nu klik op het veld dan word dat veld een andere kleur, maar daarna word het veld weer gereset en zijn de velden van de boot weer sea geworden. Toen ik een messagebox had was ik na het wegklikken van de messagebox van veld veranderd waardoor de boot bleef staan.

Dit lijkt omslachtig maar kon het niet anders werkend krijgen. Ik weet nu wel waar de fout zit, maar heb nog niet opgelost, dus als iemand een betere/makkelijkere/simpelere oplossing weet.

Ik heb het al opgelost, ik sla nu de huidige muis positie in de mousemove op en vergelijk die met de vorige positie.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.178s