web-dev-qa-db-fra.com

La barre de défilement horizontale n'est pas visible sur DataGridView

J'ai un formulaire DataGridView sous Window qui contient 30 colonnes et des milliers de lignes. La propriété ScrollBars est définie sur Both, mais la barre de défilement horizontale n'est toujours pas visible. même je suis incapable de faire défiler avec la touche fléchée du clavier.

Je l'ai essayé en définissant la propriété ScrollBars sur Horizontal également, mais cela ne fait aucune différence.

Des suggestions s'il vous plaît?

Merci

11
Scorpion

Eh bien les gars, c'est réglé.

Je réponds à ma propre question; cela peut aider quelqu'un à l'avenir.

la propriété Frozen est définie sur True sur l'une des colonnes. qui devrait être false pour toutes les colonnes. Maintenant, ScrollBar fonctionne parfaitement pour moi.

À votre santé

enter image description here

36
Scorpion

Je sais que cela a déjà été résolu, mais je suis tombé sur une autre raison pour laquelle cela pourrait se produire. Je pensais donc l'ajouter comme réponse au cas où quelqu'un d'autre aurait le même problème.

Si votre formulaire comporte un DataGridView qui est ancré pour le remplir et que le formulaire comporte également une barre d'état, celle-ci peut masquer la barre de défilement de DataGridView en fonction de l'ordre dans lequel il est créé. Pour résoudre ce problème, cliquez avec le bouton droit sur le DataGridView, puis sélectionnez "Amener au premier plan".

16
Dan

j'ai eu le même problème. Ce que j’ai fait est de vérifier chacune des colonnes de votre grille de données et de régler le Frozen sur " false ". J'espère que cela pourra aider. 

3
Raymond Dumalaog

Lorsque j'ai rencontré ce problème gênant, il était dû à la propriété AutoSizeColumnsMode du fichier DGV, définie sur Fill.

Je l'ai corrigé en changeant cette propriété en AllCells, mais toute autre valeur fonctionnera. Cela fonctionne même si le DGV est ancré et que j'ai plusieurs panneaux ancrés, et que la première colonne est gelée. 

3
Fabio Michelini

J'avais ce problème irritant. J'avais déjà créé DataGridView sur mon formulaire et je définis tous les paramètres de liaison de données et de propriétés dans le fichier .CS.

Je viens de commenter la ligne dans mon code derrière le fichier (.cs) i.e. 

gvTblContent.AutoSize = true;

Vous n'avez pas besoin de définir la propriété AutoSize; des barres de défilement horizontales et verticales seront fournies par défaut, sinon vous pouvez utiliser:

gvTblContent.ScrollBars = ScrollBars.Both;
2
iltaf

Le remplissage du DGV est un petit buggy.
Cela se produit lorsque vous avez plusieurs panneaux ancrés, barres d’outils, etc. Plus commun lorsque vous créez vos colonnes au moment de l’exécution.

Le contrôle pense qu'il est plus large que son conteneur et la barre de défilement horizontale ne s'affiche pas. 

La solution la plus fiable consiste à Dock.Left et à définir la largeur du DGV au moment de l'exécution. Ainsi, le DGV ne vous laissez pas troubler par sa largeur.

2
Joe

Toutes les colonnes gelées doivent tenir dans le formulaire. Sinon, la barre de défilement horizontale n'apparaît pas. S'il n'y a pas de barre de défilement horizontale, agrandissez votre formulaire jusqu'à ce que vous voyiez votre dernier champ gelé, puis la barre de défilement horizontale. apparaîtra comme par magie.

0
Boris Vaiser

J'ai eu le même problème et j'ai trouvé que mon dataGridView était légèrement plus grand que le formulaire dans lequel il se trouvait. J'ai ajusté la taille pour l'adapter au formulaire et cela a fonctionné! J'espère que cela aide!

0
Robbie

Je règle certaines premières colonnes figées sur true (H_bar) fonctionne toujours. Mais je fixe gelé = vrai à une colonne invisible (column.visible = false), il est parti.

0
Huỳnh Hữu Ân

Moi aussi j'ai eu ce problème dans VS2015 sur un winform. 

Le winform a une disposition de tableau divisée en 4 lignes, 1 colonne. Dans les lignes, je place des panneaux pour placer d'autres contrôles, à l'exception de la ligne DataGrid qui se trouve dans la dernière ligne. Le DataGrid est défini avec Dock à remplir. Le formulaire comporte également une barre d'état en bas, pour une utilisation ultérieure. 

Ce que j'ai trouvé, c'est que la barre d'état a bloqué la barre de défilement, comme mentionné précédemment. 

J'ai ajouté une autre ligne à la présentation du tableau, mais cela afficherait un grand espace vide au bas du formulaire, à la fois au moment de l'exécution et du design. Redimensionner le formulaire n'a pas résolu non plus. J'ai essayé de définir la hauteur des lignes de la table mais cela ne fonctionnait pas. J'ai essayé 1 pixel, 5 pixels, etc. pas de changement. À la fin, j'ai abandonné et enlevé la barre d'état, je ne l'utilisais pas pour quoi que ce soit.

0
Larry

Dans mon cas, je viens d'utiliser ANCHOR Top, Bottom, Left, Right au lieu de DOCK Fill.

L'essayer.

0

Dans mon cas, la barre de défilement n'apparaissait pas jusqu'au moment où j'ai réalisé l'état de colonne gelé ci-dessus et en lecture seule. J'ai fait des colonnes gelées pour la colonne en lecture seule ainsi que la colonne éditable de ma dataGridView. Lorsque je supprimefrozen=falsepour une colonne modifiable, la barre horizontale apparaît.

0
Kishor Oswal

Je rencontre aussi ce problème. C'est une situation stupide dans mon cas.

Veuillez vérifier la position/la taille de DataGridView s’il est hors du formulaire.

0
Mystic Lin

J'ai eu le même problème avec DataGridView à l'intérieur d'un tableLayoutPanel.

Aucune de ces réponses ne m'a aidé.

Il se trouve que la colonne dans la table tableLayoutPanel dans laquelle le DataGridView est défini est/ AutoSize .

La solution consiste à définir les colonnes de tableLayoutPanel sur la valeur réelle ou le pourcentage.

0
Emil Gospodinov

Plusieurs colonnes afficher/masquer de mon côté étaient à l'origine du même problème. A dû ajouter DataGridView1.ScrollBars = ScrollBars.Both; après avoir traité toutes les colonnes et les lignes de la datagridview

Rien de ce qui précède n’a aidé avant cela 1. Pas de colonnes gelées 2. Le chargement du formulaire a dataGridView1.ScrollBars = ScrollBars.Both; 3. Pas de barre d'état

0
Nikolay Popov

J'avais un DataGridView assis dans une cellule d'un TableLayoutPanel, et aucune barre de défilement n'apparaissait sur le DataGridView. Je pense également que la taille de DataGridView n'était pas gérée correctement, ce dernier étant ancré pour remplir une cellule de TableLayoutPanel. Je n'avais aucune colonne gelée. 

J'ai pu résoudre ce problème en plaçant DataGridView dans un panneau et en définissant AutoScroll = true sur le panneau pour laisser le panneau gérer le défilement. J'ai ancré le panneau pour remplir à l'intérieur de la cellule de TableLayoutPanel et ancré le DataGridView pour remplir à l'intérieur du panneau.

0
frenchtoast