2017-09-05 10 views
0

J'ai un panneau avec de nombreux contrôles enfants et Autoscroll activé. En cliquant sur la flèche en haut ou en bas des résultats scrollbar dans un petit mouvement de quelques pixels seulement:Modifier la barre de défilement de la quantité déplacée sur un panneau

Panel with the down arrow clicked

la quantité de mouvement peut être contrôlé et réglé à une valeur beaucoup plus grande? Utilisation du .NET Compact Framework

EDIT 1

Dans la version complète de .NET, les propriétés VerticalScroll.SmallChange et VerticalScroll.LargeChange sont accessibles directement. Mais ceux-ci ne sont pas disponibles dans le Compact Framework. La question est donc de savoir comment le faire dans le Compact Framework?

EDIT 2 En consultant AutoScrollPosition.Y du Groupe spécial, j'ai découvert que le paramètre SmallChange est réglé sur 5 pixels. Cela doit être la valeur par défaut pour les contrôles Panel dans le cadre compact. Pour mon application à écran tactile, cela doit être quelque chose comme 70 pixels.

+0

N'a-t-il pas la propriété 'VerticalScroll' où vous pouvez ajuster SmallChange et LargeChange? – icebat

+0

Bon appel. Juste vérifié le plein. NET et le 'VerticalScroll.SmallChange' et d'autres propriétés sont disponibles par programmation ... mais ceux-ci ne sont pas disponibles dans le cadre compact. Donc je suppose que ma prochaine étape est de trouver comment accéder à ces propriétés. – AlainD

+0

Vous pouvez également essayer la propriété 'VScrollBar'. Vous aurez besoin de créer une classe dérivée de Panel pour y accéder, mais elle devrait être simple. – icebat

Répondre

0

Après de nombreuses recherches, je suis arrivé à la conclusion que ce n'est tout simplement pas possible dans le Compact Framework. Cette réponse est non pour la question spécifique, mais une excellente solution adaptée de this answer by Cyril Gupta

  • Créer un nouveau panneau « parent » et placez le vieux panneau sur ce parent
  • Redimensionner l'enfant de sorte qu'une petite zone du parent est visible. Placez les boutons Up et Down sur cette zone.
  • Désactiver AutoScroll sur le panneau enfant.
  • Définissez la hauteur du panneau enfant afin que la barre de défilement disparaisse. Notez que tous les contrôles ne seront pas visibles, bien sûr.
  • Lorsque l'un des boutons est cliqué sur le panneau parent, modifiez la propriété Top de l'enfant.

Fonctionne bien!