none
[VB.net] Picture Box, changer d'image au survol de la souris. RRS feed

  • Question

  • J'ai un petit problème, je voudrai que des que la souris est sur l'image (picture box), la picture box affiche une nouvelle image.

    J'ai cherché partout mais je ne trouve pas de solution à ma question.  J'utilise visual studio 2010 (VB.net).

    Merci de m'aider.

     

    mercredi 2 février 2011 13:53

Réponses

  • ... je voudrai que des que la souris est sur l'image (picture box), la picture box affiche une nouvelle image. ...

    Bonjour,

    J'ai répondu mais je ne vois pas ma réponse ?

    Voici ton code testé :

    Option Explicit On
    Public Class Form
    
     Dim quelimage As Byte = 2 ' 1ere image 
    
     Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      ' image de départ
      PictureBox1.Image = My.Resources.cuisine1
     End Sub
    
     Sub PictureBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseEnter
      ' entre dans l'image (exemple sur 3 images)
      Select Case quelimage ' images mises en ressources, on peut aussi appeler depuis le disque
       Case 1 : PictureBox1.Image = My.Resources.cuisine1
       Case 2 : PictureBox1.Image = My.Resources.c02
       Case 3 : PictureBox1.Image = My.Resources.rond
      End Select
     End Sub
    
     Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
      ' sort de l'image après y être entrée par MouseEnter
      quelimage = quelimage + 1
      If quelimage > 3 Then quelimage = 1
     End Sub
    End Class
    

    Cordialement



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    • Proposé comme réponse TroxsaEditor jeudi 3 février 2011 17:24
    • Marqué comme réponse Alex Petrescu mardi 8 février 2011 14:15
    mercredi 2 février 2011 15:08

Toutes les réponses

  • Bonjour,

    Tu devrais utiliser la gestion de l'événement OnMouseHover qui te permettra de gérer le fait que la Souris soit sur ta PictureBox.

    Cordialement,

    Thomas


    Thomas Aimonetti - C# - Sharplog Engineering - http://www.sharplog.fr
    mercredi 2 février 2011 15:07
  • As tu pensé à gérer cela via l'évènment 'MouseMove' ou 'MouseHover' de ton PictureBox

    Cordialement
    Mael

    mercredi 2 février 2011 15:07
  • ... je voudrai que des que la souris est sur l'image (picture box), la picture box affiche une nouvelle image. ...

    Bonjour,

    J'ai répondu mais je ne vois pas ma réponse ?

    Voici ton code testé :

    Option Explicit On
    Public Class Form
    
     Dim quelimage As Byte = 2 ' 1ere image 
    
     Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      ' image de départ
      PictureBox1.Image = My.Resources.cuisine1
     End Sub
    
     Sub PictureBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseEnter
      ' entre dans l'image (exemple sur 3 images)
      Select Case quelimage ' images mises en ressources, on peut aussi appeler depuis le disque
       Case 1 : PictureBox1.Image = My.Resources.cuisine1
       Case 2 : PictureBox1.Image = My.Resources.c02
       Case 3 : PictureBox1.Image = My.Resources.rond
      End Select
     End Sub
    
     Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
      ' sort de l'image après y être entrée par MouseEnter
      quelimage = quelimage + 1
      If quelimage > 3 Then quelimage = 1
     End Sub
    End Class
    

    Cordialement



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    • Proposé comme réponse TroxsaEditor jeudi 3 février 2011 17:24
    • Marqué comme réponse Alex Petrescu mardi 8 février 2011 14:15
    mercredi 2 février 2011 15:08
  • Bonjour,

     

    EhJoe, merci pour cet exemple de code !

     

    Lord-dark, je vous remercie de préciser si vous avez réussi d’implémenter MouseHover ou MouseEnter/MouseLeave. Si vous avez besoin de clarifications supplémentaires, n’hésitez pas de continuer la discussion dans ce thread.

     

    Cordialement,

    Alex

    ________________

    Publiez un article sur MSDN !

    Windows Phone 7

    Astuces pour Visual Studio 2010

    XNA – Développement jeux vidéo

    Didacticiels et astuces : VB.NET, C#, ASP.NET, .NET Framework, Silverlight, Workflow Foundation, SharePoint, WPF

    Microsoft propose ce service gratuitement, dans le but d'aider les utilisateurs et d'élargir les connaissances générales liées aux produits et technologies Microsoft. Ce contenu est fourni "tel quel" et il n'implique aucune responsabilité de la part de Microsoft.

     

     


    Suivez MSDN sur Twitter 

    jeudi 3 février 2011 16:03
  • Bonsoir,

    Bon, y en a qui évoquent MouseOver, ben alors voici un code pour MouseOver (concernant la récursivité dans la procédure, y a peut être mieux, mais je ne connais pas assez le mécanisme de cette fonction ?

    Option Explicit On
    Public Class Form
    
     Dim quelimage As Byte = 2 ' 1ere image 
     Dim dedans As Boolean = False
    
     Sub Form_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
      PictureBox1.Image = My.Resources.cuisine1 ' image de départ
     End Sub
    
     Sub PictureBox1_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseEnter
      dedans = True
     End Sub
    
     Sub PictureBox1_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseHover
      Select Case quelimage ' images mises en ressources, on peut aussi appeler depuis le disque
       Case 1 : PictureBox1.Image = My.Resources.cuisine1
       Case 2 : PictureBox1.Image = My.Resources.c02
       Case 3 : PictureBox1.Image = My.Resources.rond
      End Select
      quelimage = quelimage + 1
      If quelimage > 3 Then quelimage = 1
      System.Threading.Thread.Sleep(1000)
      My.Application.DoEvents()
      If dedans = True Then Call PictureBox1_MouseHover(sender, e)
     End Sub
    
     Sub PictureBox1_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles PictureBox1.MouseLeave
      dedans = False
     End Sub
    
    End Class
    
    

    Cordialement.



    Joseph Attila PUSZTAY
    EhJoe       Logiciels       Romans       Ecrire
    • Proposé comme réponse EhJoe mardi 8 février 2011 18:21
    mardi 8 février 2011 18:20
  • Bonjour, je viens de commencer, je sais ma question va vous paraitre bête mais ou mettons l'image ?

    merci de me répondre .

    mercredi 28 mars 2012 15:52