Comment désactiver la barre de défilement horizontale pour le panneau de tableau dans les winforms
Salut, j'ai un tablelayoutpanel et je suis à la liaison de contrôles de façon dynamique. Lorsque le nombre d'éléments dépasse la hauteur de panneau évidemment barre de défilement vertical apparaissant il n'y a pas de problème.
Mais en même temps, la barre de défilement horizontale apparaît également des articles en largeur est inférieure à la largeur du panneau. Comment puis-je éviter cela?
source d'informationauteur Nagu
Vous devez vous connecter pour publier un commentaire.
Perdu quelques poils sur ce sujet aujourd'hui, mais je l'ai résolu, et c'est ce que j'ai:
Créer une nouvelle classe qui hérite de TableLayoutPanel (appelons cela MyTableLayoutPanel), et de remplacer les MaximumSize propriété comme cela:
Vous pouvez bien sûr faire plus d'usage général par l'ajout d'une autre propriété qui décide si oui ou non vous devez retourner l'altération de la MaximumSize ou pas, mais j'espère que c'est clair pour tous que la lecture de ce.
Changer le TableLayoutPanel que vous avez à la nouvelle MyTableLayoutPanel type.
L'ajouter à un régulière Panneau. Activer le défilement Automatique sur ce Panneau au lieu de la MyTableLayoutPanel (le désactiver si vous ne l'avez pas déjà).
Définir la MyTableLayoutPanel propriété AutoSize true et sa propriété Anchor à Gauche, à Droite et en Haut.
J'ai eu ce problème avec un quai TableLayoutPanel contenant ancrée GroupBoxes et une seule Colonne fixée à 100% de largeur. Je n'ai pas envie de mettre un manuel de la taille de ce que je voulais pour redimensionner avec la forme.
Étrangement, la définition de la marge intérieure Droite de la TableLayoutPanel de 1 (pas la largeur de la barre de défilement - qui a laissé une barre de défilement de la taille de l'écart, comme vous vous en doutiez) a résolu le problème complètement. C'est en C# 2010 Express .NET 4, Windows 8. Aucune idée si cette bidouille fonctionne sur d'autres variations.
Réglage de la marge intérieure de 0 semblait pour résoudre le problème dans l'IDE, mais le problème existait toujours en fonctionnement réel.
Sent comme une sorte de bug dans le TableLayoutPanel pour moi...ou peut-être que c'est juste la combinaison particulière de contrôles et de propriétés que j'ai (c'est assez compliqué de mise en page).
Est la question que vos articles sont exactement la largeur du panneau de disposition, de sorte que lorsque le verticle de défilement apparaît, il réduit vos contrôles un peu, forçant la barre de défilement horizontale? Si oui, vous pouvez faire vos commandes en petite largeur-sage de tenir compte de la possibilité de la barre de défilement, ou vous pouvez essayer d'ajuster lorsque la barre de défilement apparaît.
Cela a fonctionné parfaitement .NET 3.5, là où les autres solutions ne me donne pas exactement ce que je voulais:
J'ai connu ce problème.
Beaucoup de gens également obtenir le même problème dans la grille de données. Mais, il n'y a pas de solution exacte pour cette question, vous devrez manuellement décider de la dimension du panneau selon l'utilisation.
cela va désactiver la barre de défilement horizontale, mais vous devez ajuster manuellement la dimension de la disposition du tableau de bord.
Une autre façon serait de calculer le possible de la largeur de tablelayoutpanel au moment de l'exécution et s'il est supérieur à la valeur que vous avez définie, alors vous pouvez l'activer.
J'ai résolu ce problème en utilisant un simple Panneau sur lequel j'ai installé le tablelayoutpanel.
Ensuite, j'ai effectué pas le TLP avoir les barres de défilement, mais le Panneau. Cela fonctionne très bien pour moi.
Je suppose que le TLP avec les différentes colonnes et les lignes a des problèmes pour calculer la largeur de chaque et montre donc une barre de défilement verticale, même lorsqu'il n'est pas nécessaire.