Ajouter une picturebox et la garder

ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - Modifié par ManuAntibes le 25/09/2015 à 21:03
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 - 26 sept. 2015 à 16:40
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

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
26 sept. 2015 à 07:20
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.
1
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
26 sept. 2015 à 07:44
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.
0
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
26 sept. 2015 à 07:58
excatement
0
ManuAntibes Messages postés 491 Date d'inscription mardi 24 octobre 2000 Statut Membre Dernière intervention 18 novembre 2021 5
Modifié par ManuAntibes le 26/09/2015 à 16:41
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
0
Rejoignez-nous