12
votes

La barre de défilement verticale .NET ne respecte pas la propriété maximale

J'ai une forme et j'ai laissé tomber une barre de défilement verticale dessus.

Tout ce que je définissais la propriété "maximum" sur, la barre de défilement ne fera que défiler jusqu'à cette valeur moins 9.

Pourquoi est-ce?

J'utilise C # dans Visual Studio 2008. (Winforms)


0 commentaires

3 Réponses :


28
votes

Après quelques recherches, j'ai découvert qu'une barre de défilement ne peut monter que maximum de la taille du curseur de la barre de défilement.

Et la taille du curseur semble être égale à (largechange - 1).

ne semble pas très intuitif pour moi, mais vous y allez.


2 commentaires

Vous avez bien compris; J'étais sur le point de dire la même chose. La pire chose est que ce design étrange est complètement sans papiers.


Bon point sur la documentation. Et le -1 est un nombre magique en ce qui me concerne. Très bâclée sur la partie de Microsoft pour un contrôle aussi courant!



2
votes

La valeur par défaut de la propriété de Largechange est 10. Cette valeur est utilisée lorsque la barre de défilement est incrémentée en cliquant sur la flèche droite. Si vous souhaitez afficher toutes les valeurs (en supposant 1,2,3,4, ...) avec des clics de souris, définissez Largechange = 1


0 commentaires

-1
votes

J'aime la barre de défilement comme un périphérique d'entrée rapide, mais le bogue indiqué ici était un problème. SYED a raison que vous puissiez simplement réduire la propriété largechange sur 1 et la barre de défilement se déplacera à sa valeur maximale.

Toutefois, si vous souhaitez conserver la propriété largechange à une valeur plus grande, indiquez 10 pour défilement rapide, utilisez l'événement ValueChaseCeChaged . Lorsque la valeur est inférieure à 90 (ou en dessous maximum - Largechange ), laissez la propriété largechange à 10. Lorsque la valeur passe à 90 ou plus, changez le largechanger propriété à 1.

Cela permet à la barre de défilement de se comporter normalement (ou très presque) tout en allant à son maximum.


0 commentaires