Ajouter une picturebox et la garder

Signaler
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
-
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
-
Bonjour,
Je travail avec 2 forms, et je souhaite ajouter un picturebox sur la form2 en code et au click d'un bouton qui est sur la form1.

j'ai un bout de code qui marche mais sauf que lorsque je ferme la form2 et que je la réouvre la picturebox a disparue, comment faire pour quelle reste toujours.
et que je puisse la supprimer avec du code.

voici mon code:
        Dim NewPictureBox As New PictureBox
        NewPictureBox.Location = New System.Drawing.Point(100, 100)
        NewPictureBox.Image = My.Resources.monImage
        NewPictureBox.Size = New System.Drawing.Size(100, 240)
        NewPictureBox.Name = "MyPictureBox003"
        NewPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage
        My.Forms.Form2.Controls.Add(NewPictureBox)


comment faire , merci

3 réponses

Messages postés
15163
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
30 novembre 2020
464
Bonjour, il faut que tu gardes en mémoire ou dans un fichier les boutons que tu as ajouté.

Quand tu rouvres Form2 tu consultes cette "mémoire" pour remettre ou pas un ou des boutons.
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
3
ok merci ,
du coup hier soir , je pensais un truc du genre.
créer une base xml, et garder en mémoire:
  • l'objet (bouton, picturebox...)
  • size (taille)
  • location (position)
  • valeur ou text (pour nom)

etc...

en tous cas merci pour ta reponse.
Messages postés
15163
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
30 novembre 2020
464
excatement
Messages postés
486
Date d'inscription
mardi 24 octobre 2000
Statut
Membre
Dernière intervention
23 mars 2019
3
Salut
j'ai un nouveau problème, j'ai un bug lorsque je renseigne la position sur ma PictureBox, le code part sur l'evenement "Event_MouseMove" et ne veux plus en sortir et n'affiche pas le reste de mes PictureBox.

voici la partie de code pour afficher les PictureBox:

       
Dim _PictureBox as PictureBox = Nothing

 For Each _DataRow As DataRowView In Me.DataT_MaBaseXMLBindingSource
            _PictureBox = New PictureBox

              _PictureBox.Tag = _DataRow(3) 'Valeur du nom dans le xml
            _PictureBox.Visible = True
            _PictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
            _PictureBox.Location = New Point(_DataRow(4).ToString) ' valeur de la position dans le xml

            'Ajouter des événements à la nouvelle picturebox que nous venons de créer 
            'de sorte qu'elle puisse être déplacé
            AddHandler _PictureBox.MouseDown, AddressOf Event_MouseDown
            AddHandler _PictureBox.MouseMove, AddressOf Event_MouseMove
            AddHandler _PictureBox.MouseUp, AddressOf Event_MouseUp

            Me.Controls.Add(_PictureBox)
        Next




Puis voici la partie de code pour faire deplacer les pictureBox avec la souris:

    #Region "Déplacement des pictureBox"

    Dim oDragPoint As Point

    Private Sub Event_MouseMove(sender As System.Object, e As MouseEventArgs) Handles Me.MouseMove
        If _PictureBox IsNot Nothing Then
            'Bouge la pictureBox avec les mouvements de la souris
            Dim oMouseCursorPoint As Point = Me.PointToClient(Windows.Forms.Cursor.Position)
            _PictureBox.Location = New Point(oMouseCursorPoint.X - oDragPoint.X, oMouseCursorPoint.Y - oDragPoint.Y)
        End If
    End Sub

    Private Sub Event_MouseDown(sender As System.Object, e As MouseEventArgs) Handles Me.MouseDown
        If TypeOf sender Is PictureBox Then
            _PictureBox = sender
            _PictureBox.BringToFront()
            oDragPoint = New Point(e.X, e.Y)
        End If

    End Sub

    Private Sub Event_MouseUp(sender As System.Object, e As MouseEventArgs) Handles Me.MouseUp
        _PictureBox = Nothing
        oDragPoint = Nothing
    End Sub

    #End Region



Merci par avance