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
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é
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".
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.
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.
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;
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.
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.
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!
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.
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.
Dans mon cas, je viens d'utiliser ANCHOR Top, Bottom, Left, Right au lieu de DOCK Fill.
L'essayer.
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=false
pour une colonne modifiable, la barre horizontale apparaît.
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.
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.
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
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.