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
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
129
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
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
129
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
235
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
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
129
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
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
129
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
235 > 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
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
129 > 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
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022

28 nov. 2016 à 09:04
C'est vrais, mais vraiment trop lourd ...
Merci
0
Whismeril
Messages postés
17481
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
600
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
17481
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
2 juillet 2022
600
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