Comment cadrer les entêtes de colonnes ? (Les entêtes, pas les

Résolu
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019 - 27 nov. 2016 à 06:44
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019 - 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

8 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
Modifié par cs_Le Pivert le 28/11/2016 à 11:33
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
1
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019
28 nov. 2016 à 15:45
Bravo, cela marche impec !
Peut être problème sur machine client avec d'autre font ...
Merci
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
27 nov. 2016 à 12:02
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!
0
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019
27 nov. 2016 à 13:24
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 ...
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
27 nov. 2016 à 13:33
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
27 nov. 2016 à 15:13
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

0
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019
27 nov. 2016 à 17:37
Bonsoir,
Merci à vous
Effectivement, la solution est trop lourde ....
Tant pis Je garde la cadrage initial
Cordialement
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
27 nov. 2016 à 17:51
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!

0
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019
Modifié par ucfoutu le 27/11/2016 à 19:18
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211 > scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019
Modifié par ucfoutu le 27/11/2016 à 19:57
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é".
0
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019 > ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018
28 nov. 2016 à 06:55
Pas grave ...
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137 > scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019
28 nov. 2016 à 07:57
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

@+
0
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019 > cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024
28 nov. 2016 à 09:04
C'est vrais, mais vraiment trop lourd ...
Merci
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
28 nov. 2016 à 07:06
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
0
scn68100 Messages postés 153 Date d'inscription dimanche 27 août 2006 Statut Membre Dernière intervention 26 décembre 2019
28 nov. 2016 à 07:20
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, ....
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 656
28 nov. 2016 à 11:51
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.
0
Rejoignez-nous