Comment puis-je afficher des barres de défilement sur un contrôle PictureBox?
Parfois, j'ai un picturebox permet de dire 100x100. Mais l'image qu'il affiche est en fait 100x400.
Je ne veux pas augmenter la taille de la picturebox lui-même. Au lieu de cela, je voudrais créer une barre de défilement verticale (ou horizontale si nécessaire).
Je ne pouvais pas trouver une barre de défilement dans la boîte à outils, donc je suppose que j'ai de ce code. Mais, comment?
Et je me demande encore si je n'avais pas de faire une erreur et de ne pas voir la barre de défilement dans la boîte à outils. Mes excuses alors 🙁
source d'informationauteur Voldemort
Vous devez vous connecter pour publier un commentaire.
Je suppose que vous pourrait ajouter séparés contrôles de barre de défilement et de synchroniser leurs
Scroll
événements avec le décalage à laquelle l'image dans laPictureBox
est dessiné, mais qui sonne comme du travail effectif. Il ya une meilleure façon.Ajouter un
Panel
le contrôle de votre formulaire et définissez saAutomatique
de la propriété à "True". Ce sera la cause de la commande pour afficher automatiquement les barres de défilement lorsqu'il contient du contenu qui se trouve en dehors de son actuellement visible limites. L' .NET Framework s'occupe de tout pour vous sous les couvertures, sans avoir à écrire une seule ligne de code.Glisser et de déposer votre
PictureBox
de contrôle à l'intérieur de laPanel
de contrôle que vous venez d'ajouter. LePanel
contrôle détectera alors que l'un de ses contrôles enfants est plus grande que la zone visible et afficher les barres de défilement grâce à laAutoScroll
de la propriété. Lorsque l'utilisateur déplace les barres de défilement, la partie de l'image dans votrePictureBox
qui est visible sera automatiquement ajusté. De la magie.(La raison pour laquelle vous devez utiliser un
Panel
de contrôle comme un conteneur est parce quePictureBox
de ne pas hériter directement à partir de laScrollableControl
de la classe de base, qui est ce que propose leAutoScroll
de la propriété.)J'ai essayé et ça a bien fonctionné. Mais j'ai noté que, si le contrôle picturebox est ancrée dans le panneau, le contrôle picturebox est réglée automatiquement à la taille du panneau parent, et ne peut pas être plus grand (au moins pas de quelque façon que j'ai pu trouver). Cela va à l'encontre de la finalité de la technique. Donc, mettre la picturebox sur le panneau, mais ne pas ancrer, et cela fonctionnera parfaitement.
Il n'y a pas de défilement automatique des barres sur une zone de l'image, mais vous pouvez ajouter la VScrollBar (et HScrollBar) contrôle de la forme et de gérer l'image de défilement manuellement par le restituer à un décalage différent à chaque fois que le Défilement de l'événement est déclenché.