Dessiner un simple rectangle

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

6 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
1 sept. 2005 à 16:11
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
3
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
5 sept. 2005 à 17:38
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 !

// ...
}
3
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
1 sept. 2005 à 16:25
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
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
1 sept. 2005 à 18:00
Salut, ta méthode fonctionne, es tu sûr de l'avoir abonnée à l'évènement Paint ?

this.Paint += new PaintEventHandler( Form1_Paint );
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
5 sept. 2005 à 09:16
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
0
Yoteco Messages postés 111 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 5 novembre 2008
5 sept. 2005 à 18:37
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)
0
Rejoignez-nous