Comment faites-vous une barre de piste Winform (curseur) sensiblement sur un comportez écran tactile

StackOverflow https://stackoverflow.com/questions/755671

Question

Quelle est la meilleure façon de modifier une barre de piste Winforms de sorte que lorsqu'un utilisateur clique dessus la barre de sauts de piste à l'emplacement de la souris?

Par défaut la barre de piste se déplace à mi-chemin entre son emplacement actuel et où la souris a été cliqué.

Mise à jour: Je suis en train de le faire pour que je puisse utiliser la barre de piste sur un écran tactile. Avec un traînage écran tactile est vraiment difficile, d'où l'exigence de la barre de piste pour passer directement à l'endroit où les robinets de l'utilisateur.

Était-ce utile?

La solution

Je ne l'ai jamais fait, mais je commencerais en regardant l'emplacement du clic de la souris. Je pourrais alors comprendre à quel point dans la mesure actuelle du trackbar le clic a été localisé et définir l'emplacement du suivi à cet endroit.

Je commence par la recherche en remplaçant le contrôle et la manipulation des fonctions d'événements liés à la souris (OnMouseDown(), par exemple). Notez que dans certains cas, il peut être important d'appeler la classe de base mise en œuvre d'une fonction surchargée, assurez-vous de le considérer au cas par cas. (Je viens de rencontrer heurterait à cet, il est frais dans mon esprit.)

Notez que vous ne devez modifier le comportement des contrôles standards de cette manière si vous avez un très raison impérieuse. Ils sont standard, car ils se comportent de manière prévisible à travers de centaines / milliers de programmes. Faire quelque chose de différent se comportent pour tout votre programme peut violer Principe de location Étonnement. La seule trackbar je peux penser que je pense à se comporter comme vous le décrire est pour une sorte de lecteur multimédia.

Edit: Sur la base de votre commentaire, oui, je pense que vous avez une raison impérieuse. :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top