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 :

Drag & Drop PictureBox sur WindowsForm [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Automaticien Programmeur
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Automaticien Programmeur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Points : 11
    Points
    11
    Par défaut Drag & Drop PictureBox sur WindowsForm
    Bonjour à tous,
    Nouveaux sur le forum, je tiens à préciser que je débute en VB.Net ...
    Je réalise actuellement une application qui sera totalement configurable par l'utilisateur. L'utilisateur pourra choisir ce qui est affiché sur la WindowsForm.
    Pour cela, j'ai crée une boite à outils permettant de choisir les éléments à afficher.

    Mon problème est le suivant, dans ma boite à outils, j'ai des controls du genre PictureBox ou Label, j'aimerais réaliser un Drag Drop de cette boite à outils sur la form utilisateur, et lors du Drop sur la form, créer un nouvel objet PictureBox ou Label ...
    J'ai trouvé beaucoup d'exemples de Drag & Drop d'image dans pictureBox ou Text,dans TextBox, mais pas de Drag & Drop d'objets.

    Je remercie par avance toutes les personnes qui donnerons réponse à mon probbleme.

  2. #2
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir elerat,

    Désolé si l'exemple que je vais te proposer te semble pour le moins compliqué mais si tu souhaites :

    - créer des contrôles avec des poignées de redimensionnement tu devras à mon humble avis passer par là ....... :

    http://www.codeproject.com/Articles/...ontrol-Resizer

    - glisser déposer 1 PictureBox ou 1 Label :

    http://stackoverflow.com/questions/7...ebox-onto-form

    http://stackoverflow.com/questions/8...el-in-winforms


    N'hésites pas à utiliser un convertisseur DotNet :

    http://www.developerfusion.com/tools.../csharp-to-vb/


    Bonne lecture.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Automaticien Programmeur
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Automaticien Programmeur
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Points : 11
    Points
    11
    Par défaut
    Merci Wallace1,
    Grâce à ces exemples j'ai pu implémenter le code suivant :

    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
        Private Sub ToolBoxLamp_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ToolBoxLamp.MouseDown
            If e.Button = Windows.Forms.MouseButtons.Left Then
                Me.ToolBoxLamp.DoDragDrop(ToolBoxLamp.Image, DragDropEffects.Copy)
            End If
        End Sub
     
        Private Sub HMI_DragEnter(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter
            If e.Data.GetDataPresent(DataFormats.Bitmap) Then
                e.Effect = DragDropEffects.Copy
            End If
        End Sub
     
        Private Sub HMI_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
            If e.Data.GetDataPresent(DataFormats.Bitmap) Then
                Dim Pb As New HmiObjButton
                Me.Controls.Add(Pb)
                Pb.Size = New Point(50, 50)
                Pb.SizeMode = PictureBoxSizeMode.Zoom
                Pb.Location = New Point(e.X, e.Y)
                Pb.Image = e.Data.GetData(DataFormats.Bitmap)
                Pb.EventValue = 0
                AddHandler Pb.Click, AddressOf PbClick
            End If
        End Sub
     
        Private Sub PbClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
            HmiObjContextMenu.Show()
        End Sub
    Ce code me permet donc de créer un nouveau PictureBox intégrant l'image du PictureBox source.

    J'ai quelques autres soucis concernant le Pb créer en dynamique ...
    J'ai ajouter un AddHandler pour l'event Click, comment puis je récupérer ou cibler le Pb (je peux en créer plusieurs ...) concerné, ou récupérer une propriété de ce Pb, Pb.Location par exemple ?

    Encore merci pour toutes ces informations.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD10] Drag and drop programmé sur zone répétée
    Par mogwai162 dans le forum WinDev
    Réponses: 3
    Dernier message: 10/05/2011, 16h14
  2. Drag and drop sur une PictureBox
    Par abdiouldbody dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 17/06/2009, 15h55
  3. drag n drop image sur pannel
    Par avogadro dans le forum Delphi
    Réponses: 3
    Dernier message: 16/05/2006, 16h11

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