2011-03-29 6 views
-1

J'ai dessiné quelque chose sur ma formeGraphiques et Paint Event

Mais après avoir réduit et restauré la forme, la forme est éclaircie. Quel pourrait être le problème?

Et ce codes est erroné: (JIT dit :)

private void Form1_Paint(object sender, PaintEventArgs e) 
{ 
    grForm = e.Graphics; 
} 

Parce que la coupure liée de grForm sont inférieures à zéro ou trop grand.

+1

Pourriez-vous être plus précis? –

+0

Que devrais-je faire ce formulaire ne sera pas effacé quand je le minimiser? –

+0

Qu'entendez-vous par JIT dit? – gideon

Répondre

1

Vous ne pouvez pas stocker l'objet e.Graphics dans l'événement Paint. Il n'est valide que pendant l'exécution de l'événement Paint, il est immédiatement éliminé. L'utilisation de la méthode CreateGraphics() du formulaire ne fonctionne pas non plus, elle est effacée dès que le formulaire doit être repeint. Lorsque vous minimisez et restaurez par exemple.

Vous devez utiliser la méthode Invalidate() du formulaire pour forcer l'exécution de l'événement Paint. Ensuite, dessinez tout ce qui doit être dessiné. Si vous voulez que le dessin soit persistant, vous devez dessiner un bitmap. Utilisez e.Graphics.DrawImage() dans l'événement Paint pour dessiner le bitmap. Ce n'est pas le meilleur moyen, il suffit de redessiner chaque fois que c'est nécessaire.