DrawString

Résolu
olivierbalagizi Messages postés 40 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 10 février 2011 - 20 nov. 2007 à 09:37
olivierbalagizi Messages postés 40 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 10 février 2011 - 20 nov. 2007 à 15:49
Bonjour à tous.
Je suis entrain d'utiliser les méthodes graphiques de .Net pour dessiner le contenu d'une zone de texte textBox1 dans un pictureBox2. J'aimerai que la taille du pictureBox2 s'adapte en lognueur exactement à la taille du text à dessiner. Mais plus le texte à dessiner devient long, plus la taille du  pictureBox s'allonge démésurement. Quelqu'un peut-il m'aider pour trouver la solution?

Voici ci dessous le code utilisé dans un bouton pour dessiner le text




private
void button2_Click(object sender, EventArgs e)




{




System.Drawing.Font _font = new Font("Courier New", 10, FontStyle.Bold);




Graphics g = pictureBox2.CreateGraphics();




Rectangle rect = new Rectangle();




StringFormat sf = new StringFormat();




sf.Alignment = StringAlignment.Near;




Size size = new Size(((int)_font.Size)*textBox1.Text.Length, _font.Height);




rect = new Rectangle(new Point(0, 0), size);




g.Clear(Color.White);




g.DrawString(textBox1.Text, _font, brush, rect, sf);




pictureBox2.Size = size;




System.Drawing.Font _font = new Font("Courier New", 10, FontStyle.Bold);




Graphics g = pictureBox2.CreateGraphics();




Rectangle rect = new Rectangle();




StringFormat sf = new StringFormat();




sf.Alignment = StringAlignment.Near;




Size size = new Size(((int)_font.Size)*textBox1.Text.Length, _font.Height);




rect = new Rectangle(new Point(0, 0), size);




g.Clear(Color.White);




g.DrawString(textBox1.Text, _font, brush, rect, sf);




pictureBox2.Size = size;



}

Ir Olivier Bal

2 réponses

SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
20 nov. 2007 à 09:56
Hello,

C'est normal, la taille d'une chaine de charactère ne se mesure pas comme ça.

Essaie plutôt avec la méthode MeasureString de la classe Graphics

Amicalement, SharpMao

"C'est pas parce qu'ils sont nombreux à avoir tort qu'ils ont raison!"
(Coluche / 1944-1986 / Pensées et anecdotes)
3
olivierbalagizi Messages postés 40 Date d'inscription samedi 19 mars 2005 Statut Membre Dernière intervention 10 février 2011
20 nov. 2007 à 15:49
Merci beaucoup! Ca marche parfaitement comme je le désirais.
Ir Olivier Bal
0
Rejoignez-nous