2013-08-03 3 views
0

En tant qu'exercice C#, je veux ajouter un PaintEventHandler personnalisé qui dessine un rectangle à mon formulaire chaque fois qu'il est dessiné. Je possède:Comment ajouter un EventHandler personnalisé au PaintEventHandler?

1) Un délégué

public delegate void MyPaintFormEventHandler(object sender, PaintEventArgs e); 

2) Un procédé à exécuter, le dessin du rectangle.

private void draw_red_rectangle(object sender, PaintEventArgs e) 
{ /* Implementation here */ } 

3) Un abonnement à l'événement Paint du formulaire.

this.Paint += new MyPaintFormEventHandler(draw_red_rectangle); 

Cependant, ce morceau de code ne compile pas ensemble, pour la raison suivante:

Impossible de convertir implicitement le type 'use_graphics.MyPaintFormEventHandler' à 'System.Windows.Forms.PaintEventHandler'

Quelqu'un peut-il m'aider en repérant ce que je fais mal et comment je pourrais résoudre ce problème?

+0

Vous n'avez pas besoin de créer votre propre délégué Au lieu d'utiliser 'System.Windows.Forms.PaintEventHandler' –

Répondre

1

Votre problème vient du fait que vous avez déclaré votre propre type de délégué. Vous pouvez simplement utiliser:

this.Paint += new PaintEventHandler(draw_red_rectangle); 

ou

this.Paint += draw_red_rectangle; 
+0

Il peut être si facile, une fois que vous savez il! Cela fonctionne comme un charme, merci! – physicalattraction

Questions connexes