Dessiner un simple rectangle [Résolu]

Messages postés
112
Date d'inscription
lundi 20 octobre 2003
Dernière intervention
5 novembre 2008
- - Dernière réponse : Yoteco
Messages postés
112
Date d'inscription
lundi 20 octobre 2003
Dernière intervention
5 novembre 2008
- 5 sept. 2005 à 18:37
Bonjour,



J'aimerais dessiner un simple rectangle au centre de ma fenêtre qui mesure 300 x 300 pixels



Mais je n'y arrive pas !!!



voici mon code:



private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

{

Pen crayon = new Pen(Color.Red, 10);

Rectangle rectangle = new Rectangle(150,150,100,70);

e.Graphics.DrawRectangle(crayon,rectangle);

}



qu'y a-t-il de faut ????



Merci d'avance

Et une côtellette à la bière pour Gérard
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
4947
Date d'inscription
lundi 17 février 2003
Dernière intervention
14 février 2014
3
Merci
as-tu essayé ceci :

protected
override
void OnPaintBackground(PaintEventArgs pevent)
{

base.OnPaintBackground (pevent);
Pen crayon =
new Pen(Color.Red, 10F);
Rectangle rect =
new Rectangle(150,150,100,70);
pevent.Graphics.DrawRectangle(crayon, rect);
crayon.Dispose(); // <<--- ne pas oublié
}

Sébastien FERRAND

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de sebmafate
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
3
Merci
Le base.OnPaintBackground est inutile dans ce context, la seule raison que je vois pour que ton évènement ne soit pas appelé c'est que la méthode OnPaint est définie dans ton code, non !? Soit tu ne l'utilise pas soit tu l'écris comme ca:

protected override void OnPaint( PaintEventArgs e )
{
base.OnPaint( e ); // Appel les délégués inscrits !

// ...
}

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de Lutinore
Messages postés
112
Date d'inscription
lundi 20 octobre 2003
Dernière intervention
5 novembre 2008
0
Merci
Ta fonction fonctionne! Mais je ne comprend pas pourquoi la mienne ne fonctionne pas



En tout cas merci pour ton aide!


Et une côtellette à la bière pour Gérard
Commenter la réponse de Yoteco
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
0
Merci
Salut, ta méthode fonctionne, es tu sûr de l'avoir abonnée à l'évènement Paint ?

this.Paint += new PaintEventHandler( Form1_Paint );
Commenter la réponse de Lutinore
Messages postés
112
Date d'inscription
lundi 20 octobre 2003
Dernière intervention
5 novembre 2008
0
Merci
Oui regarde mon initialisation:



private void InitializeComponent()

{

//

// Form1

//

this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

this.ClientSize = new System.Drawing.Size(292, 273);

this.Name = "Form1";

this.Text = "Form1";

this.Paint +=
new System.Windows.Forms.PaintEventHandler(this.Form1_Paint);

}



puis ma méthode paint:



private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

{

base.OnPaintBackground(e);

Pen crayon = new Pen(Color.Red, 10);

Rectangle rectangle = new Rectangle(100,90,100,70);

e.Graphics.DrawRectangle(crayon,rectangle);

crayon.Dispose();

}



je n'arrive vraiment pas à comprendre pourquoi sa ne marche pas

Et une côtellette à la bière pour Gérard
Commenter la réponse de Yoteco
Messages postés
112
Date d'inscription
lundi 20 octobre 2003
Dernière intervention
5 novembre 2008
0
Merci
J'ai tout recontrôler mon code et cette fois-ci sa marche ! Merci !

Ce qui est incompréhensible, c'est que le monde soit compréhensible. (Albert Einstein)
Commenter la réponse de Yoteco

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.