JulienOrion666 | Bonjour,
Je fait de l'impression d'un tableau de 3 colonnes , je mesure la taille de mon text pour calculer la hauteur de ma cellule ou plutot de la ligne.
Code :
- float largeur_co;
- for (int i = 0; i < listViewCarr.Items.Count; i++)
- {
- // taille des chaine a mettre ds les 3 cellules
- float tailleDomaine = e.Graphics.MeasureString(listViewCarr.Items[i].SubItems[0].Text ,imprFont).Width;
- float tailleProfession = e.Graphics.MeasureString(listViewCarr.Items[i].SubItems[1].Text, imprFont).Width;
- float tailleSecteur = e.Graphics.MeasureString(listViewCarr.Items[i].SubItems[2].Text , imprFont).Width;
- // taille du text le plus grand
- float tailleMax = Math.Max(Math.Max(tailleDomaine, tailleProfession), tailleSecteur);
- //largeur des colonnes
- largeur_col = e.MarginBounds.Width/3
- // taille d'une ligne text
- int hauteur = (int)MyGr.MeasureString("X", imprFont).Height;
- // nombre de lignes text
- int nb_lignes_txt = (int) (tailleMax / largeur_col) + 1;
- //hauteut de ma ligne
- hauteur = hauteur * nb_lignes_txt
- tableCase = new Rectangle(0, Ypos, largeur_col, hauteur);
- e.Graphics.DrawString(listViewCarr.Items[i].SubItems[0].Text, imprFont, imprBrush, tableCase, imprFormat);
- e.Graphics.DrawRectangle(stylo, tableCase);
- tableCase = new Rectangle(xBase + largeur_col, Ypos, largeur_col, hauteur);
- e.Graphics.DrawString(listViewCarr.Items[i].SubItems[1].Text, imprFont, imprBrush, tableCase, imprFormat); e.Graphics.DrawRectangle(stylo, tableCase);
- tableCase = new Rectangle(xBase + largeur_col*2, Ypos, t largeur_col, hauteur);
- e.Graphics.DrawString(listViewCarr.Items[i].SubItems[2].Text, imprFont, imprBrush, tableCase, imprFormat);
- e.Graphics.DrawRectangle(stylo, tableCase);
- Ypos += hauteur;
- }
|
le probleme c'est que dans certain cas ma varaible "nb_lignes_txt" n'est pas exacte 1.9... au lieu 2.0124. et il me manque donc une ligne et il coupe, je ne vois pas ou est l'erreur de calcul.
peut etre a cause des blanc qu'il rajoute dans la mise en forme:
"il fait beau ce matin" :21 caractere
il fait beau ce __
matin_________ : 32 caractere.
mais si c est ca comment mesurer la taille du text mise en forme a la fin.
|