Dessiner un simple rectangle [Résolu]

Yoteco 112 Messages postés lundi 20 octobre 2003Date d'inscription 5 novembre 2008 Dernière intervention - 1 sept. 2005 à 14:54 - Dernière réponse : Yoteco 112 Messages postés lundi 20 octobre 2003Date d'inscription 5 novembre 2008 Dernière intervention
- 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 

6 réponses

Répondre au sujet
sebmafate 4947 Messages postés lundi 17 février 2003Date d'inscription 14 février 2014 Dernière intervention - 1 sept. 2005 à 16:11
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de sebmafate
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 5 sept. 2005 à 17:38
+3
Utile
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 !

// ...
}
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Lutinore
Yoteco 112 Messages postés lundi 20 octobre 2003Date d'inscription 5 novembre 2008 Dernière intervention - 1 sept. 2005 à 16:25
0
Utile
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
Lutinore 3248 Messages postés lundi 25 avril 2005Date d'inscription 27 octobre 2012 Dernière intervention - 1 sept. 2005 à 18:00
0
Utile
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
Yoteco 112 Messages postés lundi 20 octobre 2003Date d'inscription 5 novembre 2008 Dernière intervention - 5 sept. 2005 à 09:16
0
Utile
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
Yoteco 112 Messages postés lundi 20 octobre 2003Date d'inscription 5 novembre 2008 Dernière intervention - 5 sept. 2005 à 18:37
0
Utile
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.