cs_fayrous
Messages postés48Date d'inscriptionlundi 23 février 2009StatutMembreDernière intervention30 avril 2009
-
20 mars 2009 à 19:18
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 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.
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 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.
cs_fayrous
Messages postés48Date d'inscriptionlundi 23 février 2009StatutMembreDernière intervention30 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.
cs_Robert33
Messages postés834Date d'inscriptionsamedi 15 novembre 2008StatutMembreDernière intervention14 janvier 201733 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.