Comment cadrer les entêtes de colonnes ? (Les entêtes, pas les [Résolu]

Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
- - Dernière réponse : scn68100
Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
- 28 nov. 2016 à 15:45
Bonjour,
Comment cadrer les entêtes de colonnes ? (Les entêtes, pas les cellules)
Par exemple : Article Prix, je voudrais que "Article" soit cadré à gauche, et "Prix" cadré à droite.
Je ne trouve pas les propriétés à modifier pour obtenir cela ….
Cordialement
SC
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
5609
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
1
Merci
C'est possible d'une façon simple:

 With DataGridView1
                .Columns(0).Name = "Nom" 
                .Columns(0).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleRight
                .Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable
                .Columns(1).Name = "Prénom" 
                .Columns(1).HeaderCell.Style.Alignment = DataGridViewContentAlignment.BottomLeft
                .Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable
                .Columns(2).Name = "Adresse"  
                .Columns(2).HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter
                .Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable
             End With


DataGridViewColumnSortMode.NotSortable


ne permet pas le tri de la colonne,mettre:

  .Columns(2).SortMode = DataGridViewColumnSortMode.Automatic


mais en cas d'alignement à droite, le texte n'est pas totalement à droite

faire des essais

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 105 internautes ce mois-ci

scn68100
Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
-
Bravo, cela marche impec !
Peut être problème sur machine client avec d'autre font ...
Merci
Commenter la réponse de cs_Le Pivert
Messages postés
5609
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
Bonjour,

Il faut deviner quel controle tu utilises!

datagridview:

http://plasserre.developpez.com/cours/vb-net/?page=ui-winforms5#LVIII-Q-2

Listview

http://plasserre.developpez.com/cours/vb-net/?page=ui-winforms3#LVIII-H-4-a

et tout cela après une petite recherche sur Google!
Commenter la réponse de cs_Le Pivert
Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
0
Merci
Bonsoir,
Aie, c'est vrais que j'ai oublié de préciser !
Je parle bien d'une DataGridView
Le lien donne beaucoup d'information, mais ne parle hélas pas du cadrage de l'entête des colonnes. Ou je n'ai pas su trouver ...
Commenter la réponse de scn68100
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
0
Merci
Bonjour
ce "cadrage" n'existe à ma connaissance pas.
Seule solution, à mon avis : déterminer la largeur graphique du texte et compléter le texte par autant d'espaces que nécessaire, soit à gauche, soit à droite (selon que l'on veut l'alligner à gauche ou à droite).
Lourd, lourd de chez relou pour un "confort" sujet à caution.
Commenter la réponse de ucfoutu
Messages postés
5609
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
Comme te l'a dit ucfoutu (que je salue) c'est lourd de chez relou.

Mais si tu veux t'y atteler, voici un exemple:

https://www.codeproject.com/articles/33911/datagridview-custom-headers-in-vb-net

Commenter la réponse de cs_Le Pivert
Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
0
Merci
Bonsoir,
Merci à vous
Effectivement, la solution est trop lourde ....
Tant pis Je garde la cadrage initial
Cordialement
Commenter la réponse de scn68100
Messages postés
5609
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
Tu peux tricher en faisant comme cela:

'On donne le nom des colonnes

.Columns(0).Name = "    Date" ' a droite

.Columns(1).Name = "Piste" ' a gauche

.Columns(2).Name = "  Titre" ' au milieu

.Columns(3).Name = "Artiste"

.Columns(4).Name = "Album"


mais c'est du bricolage!

scn68100
Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
-
Solution quelque peu aléatoire si l'appli doit être distribuée.
Pourquoi ? parce qu'il suffit par exemple et entre autres, que la police utilisée sur la machine de développement ne soit pas présente sur celle d'exécution et qu'elle soit alors remplacée par une autre police qui, elle, "occupera" une largeur graphique différente.
Voilà pourquoi je disais plus haut :
déterminer la largeur graphique du texte

Si tu la retiens toutefois, pense au moins à utiliser une police à échappement fixe.
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
> scn68100
Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
-
Oups !
Je ne sais comment présenter mes excuses.
Je m'aperçois que j'ai modifié le message de scn68100 en croyant le commenter ! (erreur de bouton).
J'ai honte !!!!!!!
Je vais essayer de me rattraper un peu :
Le message de scn68100, disait à peu près ceci :
"je trouve cette solution assez astucieuse et m'en veux de ne pas y avoir pensé".
scn68100
Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
> ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Pas grave ...
cs_Le Pivert
Messages postés
5609
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
> scn68100
Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
-
Je viens de m'apercevoir que la solution que j'ai donné, ucfoutu l'avait décrite dans son message.

http://codes-sources.commentcamarche.net/forum/affich-10071339-comment-cadrer-les-entetes-de-colonnes-les-entetes-pas-les#3

@+
scn68100
Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
> cs_Le Pivert
Messages postés
5609
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2018
-
C'est vrais, mais vraiment trop lourd ...
Merci
Commenter la réponse de cs_Le Pivert
Messages postés
12394
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 décembre 2018
0
Merci
Bonjour
je ne suis pas sûr de comprendre ce que veut dire "cadrer", si comme le suggèrent les réponses mes mes amis (que je salue), tu veux aligner le texte, alors en cliquant sur le datagridview en mode design, tu vas dans la fenêtre propriétés.
Tu cliques sur les 3 petits points de la propriété ColumnHeadersDefaultCellStyle, et dans la fenêtre qui s'affiche tu modifies la propriété Alignement
scn68100
Messages postés
117
Date d'inscription
dimanche 27 août 2006
Dernière intervention
20 novembre 2018
-
Certes, mais cette propriété s'applique à TOUTES les entêtes ...
Comme expliqué dans les messages ci-dessus, on en veut une à droite, une à gauche, ....
Whismeril
Messages postés
12394
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
15 décembre 2018
-
Oui, tu gères les entêtés majoritaires ainsi, et après, aux quelques colonnoque tu veux modifier, tu appliques un unnstyle spécifique pour le header.
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.