begin process at 2010 02 09 23:03:30
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Système

 > 

Périphérique

 > 

Impression d'un tableau pb hauteur des cellules


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Impression d'un tableau pb hauteur des cellules

mercredi 20 février 2008 à 13:55:43 | Impression d'un tableau pb hauteur des cellules

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; } [/CODE] 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:
mercredi 20 février 2008 à 17:50:39 | Re : Impression d'un tableau pb hauteur des cellules

oximoron

Membre Club
Réponse acceptée !
tu peut être arrondir à l'entier supérieur avec un Math.Ceiling(), moi c'est ce que j'avais fait, il vaut mieux avoir de l'espace perdu que des données perdues. la fonction MeasureString est parfois assez étrange et son fonctionnment obscure.
mercredi 20 février 2008 à 18:39:07 | Re : Impression d'un tableau pb hauteur des cellules

JulienOrion666

c est bon j'ai trouve dans un tutoriel. 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 : [cpp] hauteur = (int)e.Graphics.MeasureString(strMax, imprFont, largeur_col).Height; [/cpp] strMax : chaine la plus grande des 3. nb:pour Math.Ceiling() c est pareil que le +1 nb_lignes_txt = (int) (tailleMax / largeur_col) + 1 nb_lignes_txt = (int)Math.Ceiling(tailleMax / largeur_col_max); c est pareil
mercredi 20 février 2008 à 19:31:19 | Re : Impression d'un tableau pb hauteur des cellules

oximoron

Membre Club
Réponse acceptée !
je chipote un peu mais Math.Ceiling() c est pas pareil que le +1 tout bêtement car si quun reprend ton code c'est sera toute de suite logique que c'est l'entier supérieur et que c'est pas un +1 mis la car sinon ca marhce pas. Imagine je dois débugger ton code : je vois le +1 mais (par ex 2.98 + 1 = 3.98) donc je vais me demander si je dois encore l'arrondir ou pas. Je dis ca parce que j'ai vu du code ou il y a des +2 voir des +3 tu ne sais pas pourquoi. Donc dans le fonctionnement c'est logique, dans le principe c'est moins bon ;)
mercredi 20 février 2008 à 19:44:23 | Re : Impression d'un tableau pb hauteur des cellules

JulienOrion666

faire une division entier avec un plus 1 c est un basique de la programmation, apres c est sur c est bien d avoir des methode qui le fond mais c est pas moin propre.


Cette discussion est classée dans : text, hauteur, largeur, graphics, tablecase


Répondre à ce message

Sujets en rapport avec ce message

Insérer un text dans une image BMP (C#) [ par Hammings ] Bonjour, Je souhaite insérer un texte dans une image BMP, en consultant la doc C#, j'ai essayé de procédé ainsi (mais malheureusement ca ne marche pa Probleme avec un evenement [ par gooluk ] Bonjour je developpe un objet image en C# pour une application Web Cet objet peut prendre plusieurs type d'affichage (que je fais dans le Page_Load) J les boucles [ par keisuke ] Salut a tous, alors, je voudrais, faire une boucle a l'intérieur de "connection"(une fonction activer par un bouton).Celle ci est pour attendre que je Comment on paramètre le acceptbutton dans un form [ par lucasd ] Salut , j'ai un form avec 2 boutons (ok et cancel) J'ai biens dit que le boutton ok (btok) et le boutton de acceptboutton mais quand je clique dessus, récupération des données a partir d'un fichier text pour les mettre dans un combobox [ par BOUDDINE ] Bonjour tout le mondeSVP si quelqu'un peut m'aider :je veux récupé des données à partir d'un fichier text pour les mettre dans un comboboxmerci d'avan un textbox.text qui ne veux pas se mettre à jour... [ par mathmax ] Bonjour,Voilà mon problème : bien que je change la velaur de textbox.text à chaque passage dans la boucle ci dessous, rien ne se passe lors de l'éxécu Toujour un truc qui gene !! [ par aposfa ] bonsoir en fait je réalise un sudoku tout fonctionne tres bien sauf deux trucs bien génant !! 1er probleme : j'ai créer une fonction pour enregistre Dernier petit effort [ par aposfa ] Salut à tous Voici une fonction qui doit retourner un entier, sauf que dans certains cas, si les conditions ne sont pas satisfaites, je dois juste ef Taille de la zone Client [ par titio ] Bonjour, je cherche a recuperer la taille de la zone client d'une fenetre. Graphics myDC = e.Graphics; float ResX,ResY;<FONT siz Traitement de fichier text [ par hoodlum ] Bonjour a tous, j'aimerai que l'on mindique comment supprimer les lignes vide dans un fichier pour permettre la lecture du fichier. exemple: si j'a


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,279 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales