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

Signaler
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019
-
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019
-
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

8 réponses

Messages postés
7419
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 juin 2021
124
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
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019

Bravo, cela marche impec !
Peut être problème sur machine client avec d'autre font ...
Merci
Messages postés
7419
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 juin 2021
124
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!
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019

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 ...
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237
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.
Messages postés
7419
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 juin 2021
124
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

Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019

Bonsoir,
Merci à vous
Effectivement, la solution est trop lourde ....
Tant pis Je garde la cadrage initial
Cordialement
Messages postés
7419
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 juin 2021
124
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!

Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019

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.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
237 >
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019

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é".
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019
>
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018

Pas grave ...
Messages postés
7419
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 juin 2021
124 >
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019

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

@+
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019
>
Messages postés
7419
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 juin 2021

C'est vrais, mais vraiment trop lourd ...
Merci
Messages postés
16037
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2021
551
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
Messages postés
153
Date d'inscription
dimanche 27 août 2006
Statut
Membre
Dernière intervention
26 décembre 2019

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, ....
Messages postés
16037
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2021
551
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.