IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Dédoublement en déplaçant un picturebox


Sujet :

VB.NET

  1. #1
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut Dédoublement en déplaçant un picturebox
    Bonjour

    Un form contenant un panel ce dernier contient un backgroundimage.
    Le panel contient aussi une list of picturebox chacun contenant une image.
    J'ai écrit un bout de code pour déplacer un des picturebox avec la souris (comme on déplace une carte au jeu solitaire)
    Le résultat n'est pas satisfaisant J'obtiens des dédoublements.Si je supprime le backgroundimage du panel le résultat est beaucoup plus net.
    Merci

  2. #2
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    Il faudrait que tu montres le code ... celui où tu créés ta liste et la fonction de déplacement.

  3. #3
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Bon pour simplifier j'ai suprimé les images des pictureboxs

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Public Class Form4
        Private ima As Bitmap
        Private listpics As New List(Of PictureBox)
        Private lastmouselocation As New List(Of Point)
     
        Private Sub Init()
            Dim leftpic As Integer
            Dim toppic As Integer
            Dim leftpan As Integer
            Dim toppan As Integer
            leftpic = 0
            toppic = 0
            leftpan = 0
            toppan = Me.Height \ 2
            For iter As Integer = 0 To 12
                Dim mypic As New PictureBox
                With mypic
                    .Height = 50
                    .Width = 50
                    .BorderStyle = BorderStyle.Fixed3D
                    .BackColor = Color.DarkBlue
                    .Location = New Point(leftpic, toppic)
                    .Tag = iter.ToString
                    listpics.Add(mypic)
                    AddHandler mypic.MouseMove, AddressOf mypicMouseMove
                    AddHandler mypic.MouseDown, AddressOf mypicMouseDown
                End With
                lastmouselocation.Add(New Point)
                leftpic += mypic.Width + 3
                If leftpic > Me.Width - mypic.Width Then
                    leftpic = 0
                    toppic += mypic.Height + 3
                End If
                Me.Panelgame.Controls.Add(mypic)
                mypic.BringToFront()
     
            Next
     
        End Sub
        Private Sub mypicMouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
     
            lastmouselocation(Convert.ToInt32(DirectCast(sender, PictureBox).Tag)) = e.Location
        End Sub
        Private Sub mypicMouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
            Dim ptpic As New Point
            Dim ptpan As New Point
            ptpic = e.Location
            ptpan = e.Location
            If e.Button = Windows.Forms.MouseButtons.Left Then
                ptpic.X = ptpic.X + DirectCast(sender, PictureBox).Left - lastmouselocation(Convert.ToInt32(DirectCast(sender, PictureBox).Tag)).X
                ptpic.Y = ptpic.Y + DirectCast(sender, PictureBox).Top - lastmouselocation(Convert.ToInt32(DirectCast(sender, PictureBox).Tag)).Y
                DirectCast(sender, PictureBox).Location = ptpic
            End If
        End Sub
     
        Private Sub Form4_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
     
            Init()
     
        End Sub
     
     
        Public Sub New()
     
            ' This call is required by the designer.
            InitializeComponent()
            ima = CType(My.Resources.ResourceManager.GetObject("background"), Bitmap)
            Me.Panelgame.BackgroundImage = ima
            Me.Panelgame.Size = ima.Size
            Me.Panelgame.Location = New Point(0, 0)
            ' Add any initialization after the InitializeComponent() call.
     
        End Sub
    End Class

  4. #4
    Membre éclairé Avatar de Uranne-jimmy
    Homme Profil pro
    Bioinformatique
    Inscrit en
    Décembre 2012
    Messages
    778
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Bioinformatique
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 778
    Par défaut
    J'avoue ne pas être le plus à même de t'aider ^^ Mais je peux tout de même tenter, de toute manière maintenant que ton code est visible, les membres pourront trouver rapidement l'erreur

    De ce que je pense : je ne vois pas grand chose qui pourrait être incorrect :/ Avec un peu de chance, il faut que tu mettent à jour ton affichage, ça pourrait faire disparaître l'ancienne image. Je ne suis pas d'une grande aide désolé ...

Discussions similaires

  1. VB6] imprimer le texte afficher dans une picturebox
    Par Persons dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 27/08/2004, 11h15
  2. [C#] Capture écran dans pictureBox
    Par Gauden dans le forum Windows Forms
    Réponses: 5
    Dernier message: 05/05/2004, 10h18
  3. LABEL QUI DISPARAIT SUR UN PICTUREBOX !
    Par Sophie42 dans le forum MFC
    Réponses: 2
    Dernier message: 13/01/2004, 12h10
  4. [VB6] [Graphisme] Inversion dans picturebox
    Par tomnie dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 16/04/2003, 15h05
  5. [VB6] [Graphisme] Arc de cercle dans un picturebox
    Par SpaceFrog dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 04/11/2002, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo