Ecrire dans une panel

cs_fayrous Messages postés 48 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 30 avril 2009 - 20 mars 2009 à 19:18
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 - 21 mars 2009 à 21:02
Salut tout le monde ,
dans mon form j'ai un textBox ,un button et une panel
je veux afficher le texte dans la panel et voila le code
private void button1_Click(object sender, EventArgs e)
{
Graphics g = panel1.CreateGraphics();
if (textBox1.Text != null)

g.DrawString(textBox1.Text, new Font(FontFamily.GenericMonospace, 14), Brushes.Black, new Point(panel1.Width / 2 - (textBox1.Text.Length / 2) * 9, 10));
}
mais si le texte est assez long il ne s'affiche pas totalement
je suis débutant en c#
S.V.P pouvez vous me donnez une idée pour corriger mon code.

3 réponses

cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
20 mars 2009 à 21:03
Bonsoir,

Pour connaitre la longueur du texte, sous forme graphique, utilise la methode "MeasureString"

Font MyFont = new Font(FontFamily.GenericMonospace, 14);
SizeF
stringSize=
g.MeasureString(textBox1.Text,my

Font);
Ensuite, si ta chaine est plus longue que la largeur de ton Panel, utilise la methode "DrawString" qui permet le renvoi à la ligne.
En fait c'est la même méthode que celle que tu utilises, mais avec un parametre en plus: un Rectangle dans lequel ta chaine sera affichée.
tu peux également y ajouter le parametre de formatage qui te permetra d'indiquer comment ta chaine sera afficher dans ce rectangle.

http://msdn.microsoft.com/fr-fr/library/aa327574(VS.71).aspx

Cdlt
C# is amazing, enjoy it!
0
cs_fayrous Messages postés 48 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 30 avril 2009
20 mars 2009 à 22:38
Bonsoir, j'ai essayer mais j'arrive à rien

private void button1_Click(object sender, EventArgs e)
{
Graphics g = panel1.CreateGraphics();
if (textBox1.Text != null)

g.DrawString(textBox1.Text, new Font(FontFamily.GenericMonospace, 14), Brushes.Black, new Point(panel1.Width / 2 - (textBox1.Text.Length / 2) * 20, 10));
Font MyFont = new Font(FontFamily.GenericMonospace, 14);
SizeF StringSize = g.MeasureString(textBox1.Text, MyFont);
if (StringSize.Width > panel1.Width)
{
g.DrawString(textBox1.Text, new Font("Arial", 16), new SolidBrush(Color.Black), new RectangleF(150.0F, 150.0F, 200.0F, 50.0F), new StringFormat());
}
}
S.V.P si tu veux expliquer moi plus.
0
cs_Robert33 Messages postés 834 Date d'inscription samedi 15 novembre 2008 Statut Membre Dernière intervention 14 janvier 2017 33
21 mars 2009 à 21:02
Re

Essaye ça:

private
void button1_Click(
object sender, System.EventArgs e)
{
Graphics g = panel1.CreateGraphics();
Font MyFont =
new Font(FontFamily.GenericMonospace, 14);
g.DrawString(textBox1.Text,MyFont, Brushes.Black ,
new RectangleF(0,0,panel1.Width,panel1.Height));
}
ça écrit la chaine de caracteres dans le Panel.

Cdlt
C# is amazing, enjoy it!
0
Rejoignez-nous