Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1083 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  tableau a imprimer hauteur des cellules

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

tableau a imprimer hauteur des cellules

n°1689323
JulienOrio​n666
Posté le 20-02-2008 à 13:50:11  profilanswer
 

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 :
  1. float largeur_co;
  2. for (int i = 0; i < listViewCarr.Items.Count; i++)
  3. {
  4. // taille des chaine a mettre ds les 3 cellules
  5. float tailleDomaine = e.Graphics.MeasureString(listViewCarr.Items[i].SubItems[0].Text ,imprFont).Width;
  6. float tailleProfession = e.Graphics.MeasureString(listViewCarr.Items[i].SubItems[1].Text, imprFont).Width;
  7. float tailleSecteur = e.Graphics.MeasureString(listViewCarr.Items[i].SubItems[2].Text , imprFont).Width;
  8. // taille du text le plus grand
  9. float tailleMax = Math.Max(Math.Max(tailleDomaine, tailleProfession), tailleSecteur);
  10. //largeur des colonnes
  11. largeur_col =  e.MarginBounds.Width/3
  12. // taille d'une ligne text
  13. int hauteur = (int)MyGr.MeasureString("X", imprFont).Height;
  14. // nombre de lignes text
  15. int nb_lignes_txt = (int) (tailleMax / largeur_col) + 1;
  16. //hauteut de ma ligne
  17. hauteur = hauteur * nb_lignes_txt
  18. tableCase = new Rectangle(0, Ypos, largeur_col, hauteur);
  19. e.Graphics.DrawString(listViewCarr.Items[i].SubItems[0].Text, imprFont, imprBrush, tableCase, imprFormat);
  20. e.Graphics.DrawRectangle(stylo, tableCase);
  21. tableCase = new Rectangle(xBase + largeur_col, Ypos, largeur_col, hauteur);
  22. e.Graphics.DrawString(listViewCarr.Items[i].SubItems[1].Text, imprFont, imprBrush, tableCase, imprFormat); e.Graphics.DrawRectangle(stylo, tableCase);
  23. tableCase = new Rectangle(xBase + largeur_col*2, Ypos, t largeur_col, hauteur);
  24. e.Graphics.DrawString(listViewCarr.Items[i].SubItems[2].Text, imprFont, imprBrush, tableCase, imprFormat);
  25. e.Graphics.DrawRectangle(stylo, tableCase);
  26. Ypos += hauteur;
  27. }


 
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.  :heink:  
 
 
 
 
 
 
 

mood
Publicité
Posté le 20-02-2008 à 13:50:11  profilanswer
 

n°1689325
ixemul
Nan mais sans blague ! ⚡
Posté le 20-02-2008 à 13:56:17  profilanswer
 

e.Graphics.MeasureString() ;)


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°1689338
JulienOrio​n666
Posté le 20-02-2008 à 14:10:45  profilanswer
 

??????????

n°1689344
ixemul
Nan mais sans blague ! ⚡
Posté le 20-02-2008 à 14:18:07  profilanswer
 

JulienOrion666 a écrit :


mais si c est ca comment mesurer la taille du text mise en forme a la fin.  :heink:  


 
 
la fonction e.Graphics.MeasureString(...) te permet de connaitre les dimension de ta chaîne de caractère formatée dans ton contexte GDI.
 
-> MSDN


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°1689384
JulienOrio​n666
Posté le 20-02-2008 à 14:58:31  profilanswer
 

heu ta lu mon post ?

n°1689411
ixemul
Nan mais sans blague ! ⚡
Posté le 20-02-2008 à 15:43:17  profilanswer
 

Oups, je suis allé un peu vite :D
 
Ton pb semble venir de ton calcul nb_Lignes.
 
essaye plutot
 

Code :
  1. int nb_lignes_txt = (int) ((int)tailleMax) /((int) tailleMax_col)) + 1;


 
ou encore :

Code :
  1. int nb_lignes_txt = (int)Math.Ceiling(tailleMax / tailleMax_col) +1


---------------
VA APPRENDRE ET REVIENS QUAND TU SAIS, SINON ABSTIENT TOI C'EST UN GRAND CONSEIL QUE JE TE DONNE... TU ES INCOMPÉTENT ET C'EST UNE RÉALITÉ, TU N'AS RIEN A FAIRE ICI FAUT S'Y CONNAITRE ... -Jojo1998 - RIP - http://tinyurl.com/qc47ftk
n°1689413
FLeFou
Posté le 20-02-2008 à 15:44:09  profilanswer
 

Tu devrais plustot aditionner la taille de chacune de tes lignes plus tot que de prendre la taille d'une ligne que tu multiplies par le nombre de lignes car si tu as une ligne bcp plus grandes que les autres cela ne peut pas marcher.


---------------
The secret of happiness is not in doing what one likes but in liking what one has to do Sir James M. Barrie
n°1689463
JulienOrio​n666
Posté le 20-02-2008 à 16:47:33  profilanswer
 

c est bon j'ai trouve dans un tutoriel.
 
c'est pas un pb de cast c est bien les espace qu il rajoute apres ds la cellule
 
je mesure une chaine elle a une taille x.
quand je la met ds une cellule a cause des saut de lignes qui cree des blanc sa taille va augmenter.
 
il faut faire comme ceci :

Code :
  1. hauteur = (int)e.Graphics.MeasureString(strMax, imprFont, largeur_col).Height;


strMax : chaine la plus grande des 3.
 
 
tout simplement lol la il cacul tout seul la hauteur de la celule en prennant en compte les espace et tout et tout  :D  
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  tableau a imprimer hauteur des cellules

 

Sujets relatifs
Affichage d'un tableau dans une page web avec jspAligner des inputs et leurs légendes : utiliser meme hauteur de ligne
Remplir un tableau à partir d'un fichier - ifstream -problème allocation tableau dynamique
Pb de case dans un tableau[RESOLU] VBA EXCEL - remplissage tableau
imprimer une JTableExport d'un tableau en html
[Débutant] Tri sur un tableau, totalement perdu ...initialisation de tableau à type variable
Plus de sujets relatifs à : tableau a imprimer hauteur des cellules


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)