La Roulette De La Souris De L'Événement Avec Picturebox?
Je veux passez la souris sur un contrôle picturebox (ou toutes les photos et le formulaire principal) et utilisez la molette de la souris pour faire défiler. Cependant, je n'ai pas de chance. J'ai écrit pictureBox1.La roulette de la souris et de vérifier le delta. J'ai mis un point d'arrêt pour quand elle != 0. Jusqu'à présent peu importe ce que j'ai fait, je ne pourrais pas trouver quelque chose à se produire. J'ai essayé mousemove aussi bien et qui n'a pas fonctionné. Cependant la rupture sur si la déclaration de travaux. Je ne peux jamais obtenir la roue de travailler.
Comment puis-je faire picturebox (ou tout contrôle dans le formulaire) appeler un événement mousewheel?
-edit - nevermind. J'ai ajouté l'événement à l'objet qui est le cas la plupart du temps. Il fonctionne assez bien. Je ne sais pas pourquoi je n'ai pas pensé avant, j'ai écrit à cette question. Je suis toujours ouvert à de la souris au-dessus de + roue de solutions.
OriginalL'auteur | 2010-08-03
Vous devez vous connecter pour publier un commentaire.
Windows n'envoie pas le message de défilement de la souris pour le contrôle planait, il va à la de contrôle qui a le focus. Vous savez déjà comment fixer la mise au point.
Ce problème est d'obtenir le non-intuitif, car de la façon dont les navigateurs de Bureau et les programmes de travail. Vous trouverez le code pour modifier cela dans ma réponse dans ce fil. Méfiez-vous qu'il fonctionne sur des tout fenêtre de votre application. Vous devrez ajouter le filtrage sur la poignée de la valeur si c'est souhaitable.
Mise à JOUR: ce comportement a été modifié dans Win10. Il dispose d'un nouveau système de paramètre nommé "faire Défiler les fenêtres inactives lorsque je passe", activée par défaut. La mise au point n'a plus d'importance et il fonctionne maintenant très similaire à la façon dont il se comporte dans un navigateur. Le test de votre application est importante, vous pouvez voir ce qui se passe sur une ancienne version de Windows en désactivant temporairement l'option du système.
OriginalL'auteur Hans Passant
Cette réponse explique comment le faire. En bref, créer un événement MouseEnter sur la photo-box qui se concentre seulement l'image de la boîte. Ensuite, l'image-boîte de recevoir la roulette de la souris événements de l'amende juste.
OriginalL'auteur ulatekh
Les réponses ici ne sont pas de travail pour moi.
J'ai le picturebox dans un défilement Volet et il y a peu de travail à faire pour un fonctionnement correct.
Ce que vous avez à faire est de remplacer le
OnMouseWheel()
fonction de la Forme.Vous y trouverez la roue de l'événement et vous devez vérifier si la souris est à l'intérieur de la picturebox. Mais cela ne suffit pas. Imaginez vous affichez une image de 5000 x 5000 pixels à l'intérieur d'une zone déroulante volet qui ne montre qu'une petite partie de l'image. Ensuite, vous devez également vérifier si la souris est sur le Volet et de tous les parents. Le code ci-dessous fonctionne indépendamment de la position de défilement les barres de défilement de l'un des parents contrôles de la pictureBox.
OriginalL'auteur Elmue
De substituer la Forme de la Molette de la souris et de vérifier si l'e.X et e.Y sont à l'intérieur de la zone de localisation de la PictureBox
OriginalL'auteur LolliPop