cs_fayrous
Messages postés48Date d'inscriptionlundi 23 février 2009StatutMembreDernière intervention30 avril 2009
-
24 mars 2009 à 15:04
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 2017
-
28 mars 2009 à 07:58
Salut tout le monde,
je travaille sur le graphics. dans mon form j'ai plusieurs textBox qui sont crées dynamiquent en choisissant un numero.
mon but est de dessiner ses chaines de caractères dans une panel avec drawstring. aprés chaque textBox.text je doit dessiner un rectangle.
mais je ne sait pas qu'elles sont les cordonnées de chaque rectangle.
il faut de calculer le nombre de ligne sur le graphics pour chaque chaine de caractère.
je suis essayer avec :
for (int i = epreuve.getNbq() - 1; i >= 0; i--)
{
g.DrawString("Question" + (i - 1) + " :" + epreuve.getQuestion()[i], new Font(FontFamily.GenericMonospace, 8), Brushes.Black, new Rectangle(30,110, panel1.Width / 2 - 25, panel1.Height));
Font myFont = new Font(FontFamily.GenericMonospace, 8);
float y =g.MeasureString(epreuve.getQuestion()[i], myFont).Width;
SolidBrush p = new SolidBrush(Color.Black);
g.DrawRectangle(new Pen(p), new Rectangle(new Point(40,(int)y*50), new Size(10,10)));
}
mais ça ne me donne pas de résultat .
S.V.P
pouvez vous m'aidez?
merci d'avance
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 28 mars 2009 à 07:58
Bonjour Fayrous
je n'ai toujours pas bien compris ce que tu cherche à faire,
mais voici un example de code.
il est supposé avoir 4 TextBox, un panel et un bouton.
Le panel est ancré sur la forme pour suivre ses dimentions :// <?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>
this.panel1.Location = new System.Drawing.Point(280, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(200, 280);
this.panel1.TabIndex = 0;
this.panel1.Resize += new System.EventHandler(this.panel1_Resize);
this.panel1.Paint += new System.Windows.Forms.PaintEventHandler(this.panel1_Paint);
Les TextBox n'ont rien de particulier
le principe:
le panel est dessiné manuellement (evenement paint) on récupere les chaines on calcul les tailles et on dessine
on dessine aussi un rectanlge autour des chaines
on calcul la position verticale du prochaine traçage.
L'action Paint doit être appelée si la taille du panel à changée, et si les textBox ont changées, dans l'exemple j'utilise le bouton1 pour simuler le changement.
j'ai utilisé un tableau pour les textbox, ceci pour simuler ton exemple.
tu peux vérifier que si la taille de la forme change, les textes sont redessinés en fonction de la nouvelle taille du panel.