Comment faire pour effectuer un zoom sur une Picturebox avec la molette de défilement dans vb.net

Je suis aide d'un jeu de superpositions graphiques pour dessiner une image à l'intérieur d'un contrôle picturebox à l'aide de l'objet graphique. J'ai mis le Picturebox à l'intérieur d'un Panneau et de régler le Panneau de défilement automatique. Ce que j'ai besoin de savoir comment faire maintenant est d'utiliser la molette de la Souris pour faire sauter la taille de l'image en petits incréments, tout en maintenant la qualité de l'image dessinée. Quelqu'un sait comment faire cela?

Quand je l'ai mise à jour avec Abdias Logiciel de code ci-dessous, la photo commence de plus petites lorsque la propriété Sizemode du picturebox est fixé à StretchImage. J'ai un pan de la fonctionnalité avec la souris qui peuvent interférer avec le maintien de ce code fonctionne correctement. Des Idées? Ce qui pourrait être de garder cette fonctionner correctement?

RÉSOLU

Ce code a fonctionné beaucoup mieux pour moi que les deux ci-dessous:

Private Sub PictureBox_MouseWheel(sender As System.Object,
                             e As MouseEventArgs) Handles PictureBox1.MouseWheel
    If e.Delta <> 0 Then
        If e.Delta <= 0 Then
            If PictureBox1.Width < 500 Then Exit Sub 'minimum 500?
        Else
            If PictureBox1.Width > 2000 Then Exit Sub 'maximum 2000?
        End If

        PictureBox1.Width += CInt(PictureBox1.Width * e.Delta / 1000)
        PictureBox1.Height += CInt(PictureBox1.Height * e.Delta / 1000)
    End If

End Sub
J'ai ajouté votre code et le déplacement a été activé comme prévu, et le zoom fonctionne bien aussi. Ces événements sont de toute façon distincte, de sorte qu'ils ne devraient pas interférer. Le sizemode de la force de l'image à la taille de la commande si le contrôle de la taille est plus petite que l'image de l'image est réduit. Vous pouvez dans l'événement load (ou une méthode qui définit l'image) ensemble PictureBox1.Size = New Size(bmp.Width, bmp.Height) (également mettre à jour _origjnalSize avec la même). En plus de ça, je ne vois aucun problème potentiel sans voir plus de code.
J'ai utilisé tout votre code, il suffit de différentes photos évidemment, mais fonctionne encore. (un peu comme un side-note: je ne suis pas sûr de savoir pourquoi vous mettez SetStyle (). Ils sont destinés aux contrôles de l'utilisateur et ne peut pas faire beaucoup en ce moment j'ai le code). En plus tout fonctionne comme prévu (même avec les setstyles activé). C'est un peu un mystère. Je suis sur XP btw. Je ne pense pas que les questions, mais il vaut la peine de vérifier, voire à éliminer, si vous êtes sur un autre win version.
Je suis sur Windows 7 avec Visual Studio Express 2012. Pensez-vous qu'il peut être un bug qu'ils n'ont pas encore fixé? Je détesterais pour déplacer l'ensemble de ce code et de redessiner tout à Visual Basic Express 2010. Uggg! Si vous n'avez pas l'esprit de me demander, quels sont vos paramètres de propriété de votre contrôle PictureBox et le Panneau de contrôle. Ne sais pas si c'est quelque chose de simple comme ça. Mais qui sait j'ai peut-être l'un de mes jeu de fou.
Voici mes paramètres: pastebin.com/FnAzVKzF Il pourrait être un bug dans VS2012, il semble certainement de cette façon. Une seule façon de le savoir...:)

OriginalL'auteur Greg Willard | 2012-11-21