Accueil > Forum > > > > Sélection d'une forme dans un picturebox
Sélection d'une forme dans un picturebox
vendredi 26 septembre 2008 à 20:49:23 |
Sélection d'une forme dans un picturebox

drenalyn51
|
Bonjours à tous et à toutes! Voilà, j'ais un picturebox,dedans j'y met un petit déssin: (C'est fait avec vb.net 2008) Dim NewGraphic As Graphics = PictureBox1.CreateGraphics() Dim blackPen AsNew Pen(Color.Black, 1) NewGraphic.DrawRectangle(blackPen, 100, 100, 40, 20) NewGraphic.DrawLine(blackPen, 130, 100, 110, 120)
Je peut y créer un rectangle de sélection: (Code trouvé sur le site)
'Les coordonnees utilisees pour dessiner notre rectangle Private Xstart, Ystart, Xend, Yend AsIntegerPrivateSub PictureBox1_MouseDown(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown 'Si click gaucheIf e.Button = MouseButtons.Left Then'Initialisation des coordonnesXstart = e.X Ystart = e.Y Xend = e.X Yend = e.Y 'Declaration du rectangleDim r As Rectangle 'On dessine le rectangle en utilisant la fonction RectangleToScreen'qui convertie les coordonnes du rectangle par rapport a l'ecranr = PictureBox1.RectangleToScreen( New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart)) 'On dessine un rectangle inversee qui laissera visible l'interieur du rectangleControlPaint.DrawReversibleFrame(r, Me.BackColor, FrameStyle.Dashed) EndIf'End IfEndSubPrivateSub PictureBox1_MouseMove(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove 'Quand clique gaucheIf e.Button = MouseButtons.Left Then'On efface l'ancien rectangleDim r As Rectangle r = PictureBox1.RectangleToScreen( New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart)) ControlPaint.DrawReversibleFrame(r, Me.BackColor, FrameStyle.Dashed) 'Nouvelles coordonnees de la souris quand on la bougeXend = e.X Yend = e.Y 'On redessine le rectangle avec les nouvelles coordonnes de la sourisr = PictureBox1.RectangleToScreen( New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart)) ControlPaint.DrawReversibleFrame(r, Me.BackColor, FrameStyle.Dashed) EndIfEndSubPrivateSub PictureBox1_MouseUp(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp If e.Button = MouseButtons.Left Then'On efface le dernier rectangleDim r As Rectangle r = PictureBox1.RectangleToScreen( New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart)) ControlPaint.DrawReversibleFrame(r, Me.BackColor, FrameStyle.Dashed) EndIfEndSub Donc Comment faire pour sélectionner ce petit déssin , le déplacer et le mettre ailleur dans ma picturebox?
Désolé pour la longueur , je débute avec VB.NET 2008 Merci beaucoup par avance!!!
|
|
vendredi 26 septembre 2008 à 23:07:52 |
Re : Sélection d'une forme dans un picturebox

68manu
|
Salut,
Simple, utilise l'evenement DoDragDrop de la PictureBox Apres il faut coder un peu... Mais ca c'est le plaisir de VB.net
Bonne chance.
_____________________ No problems, only soluces
|
|
samedi 27 septembre 2008 à 01:00:03 |
Re : Sélection d'une forme dans un picturebox

Kevin.Ory
|
Salut, Tu te trompe 68manu, un dessin dans une PictureBox n'est rien d'autre que des pixels coloriés, il ne s'agit pas d'un contrôle ayant des propriétés et des événements tel que DoDragDrop. Il faut tout faire manuellement, il faut donc trouver une solution pour pouvoir retrouver tes éléments dessiné dans la PictureBox.
Voici la solution qui me vient à l'esprit: Chaque élément graphique dessiné doit être sauvegardé dans une liste (les couches) comme ça se fait dans des programmes graphique comme PhotoShop ou Paint.NET. Il faut donc sauvegarder toutes les propriétés utiles pour pouvoir reconstituer l'élément graphique (par exemple Bounds et Color pour un rectangle opaque).
Lorsque tu fais un clique sur ta PictureBox, suffit de retrouver ton élément dans ta liste, de modifier sa position et de redessiner le tout.
|
|
samedi 27 septembre 2008 à 01:06:34 |
Re : Sélection d'une forme dans un picturebox

68manu
|
Bien vu Kevin, Desole drenalyn, j'ai pas percute que c'etait le dessin...et pas la picturebox. A+
_____________________ No problems, only soluces
|
|
samedi 27 septembre 2008 à 13:43:06 |
Re : Sélection d'une forme dans un picturebox

drenalyn51
|
Salut Kévin, Je vais éssayer de faire ce que tu dis,mais ca va etre très difficile car je suis total débutant! Au cas où , si tu avais quelque bout de code pour m'aider? Merci quand même à toi 68manu pour ta réponse!
|
|
dimanche 28 septembre 2008 à 17:38:41 |
Re : Sélection d'une forme dans un picturebox

Kevin.Ory
|
Réponse acceptée !
Non je n'ai pas de code pour t'aider.... Je te conseil déjà de faire une interface permettant de décrire une forme, puis de faire une classe pour chaque forme implémentant cette interface: Public Interface IShape ReadOnly Property TypeOfShape As TypeOfShape Property BackColor As Color Property Bounds As Rectangle End Class
Public Enum TypeOfShape Rectangle Ellipse Image End Enum
Public Class ShapeRectangle Implements IShape
Public Readonly Property TypeOfShape As TypeOfShape Implements IShape.TypeOfShape Get Return TypeOfShape.Rectangle End Get End Property
Public Property BackColor As Color Implements IShape.BackColor Get Return _BackColor End Get Set(Value As Color) _BackColor = Value End Set End Property Private _BackColor As Color
etc...
End ClassCa peut te mettre sur la piste, mais si tu es débutant il est clair que ça va pas être très facile 
|
|
Cette discussion est classée dans : rectangle, picturebox1, byval, xstart, ystart
Répondre à ce message
Sujets en rapport avec ce message
Sélection d'un déssin dans une picturebox [ par plano ]
Bonjours à tous et à toutes!Voilà, j'ais un picturebox,dedans j'y met un petit déssin: Dim NewGraphic As<font size="
Sélection d'un déssin dans une picturebox VB.net 2008 [ par plano ]
Bonjours à tous et à toutes!Voilà, j'ais un picturebox,dedans j'y met un petit déssin: Dim NewGraphic As<font size="
les évenements d'un usercontrol [ par Adn56 ]
Bonjours à tousVoila, je suis (encore) entraint de faire un control VB.NET ^^Donc je dessine mon control qui est composé d'une picturebox (pas forcéme
Problème avec LoadPicture et Pictuve avec Mousemove [ par MacWarrior ]
Bonjour à tous, Je développe depuis 1 mois, un programme de jeu.Ce programme comprend un nombre assez important de boutons.En faisant mes recherches
Déplacer picturebox dans form [ par tuyn00txa ]
Bonjour, Voici le code que j'utilise pour déplacer un picturebox dans une fenêtre : [code=vb] Dim x As Integer Dim y As Integer Private
L'évenement Paint [ par ShayW ]
Bonsoir Voila Sur la form j'ai placé 2 picturebox voila le code [code=vb] Public Class Form1 Private Sub draws(ByVal gr As System.Drawing.Grap
imrimet en ajuster a la page une picture box.ua [ par DAN1 ]
bonjour à tous. je désire imprimer le conpicturebox au format A4 . Le code que j'utilise fonctionne bien mais l'image n'est pas ajusté à la page, ell
Plusieurs icones associées à un évenement ? [ par tuyn00txa ]
Bonjour, je voudrais associer plusieurs icônes (PictureBox1, PictureBox2, PictureBox3) mais pas TOUS, à 2 évenements, comment faire ça? Merci pour vo
Impossible d'afficher le rectangle à partir du button.click [ par fpatrice2005 ]
Je suis toujours à la recherche d'une solution à mon problème.J'ai réalisé ce petit programme en VB2005 mais il n'affiche rien POURQUOI ????????Merci
Plusieurs Problèmes - Modification d'image en passant la souris. [ par MacWarrior ]
Bonjour à tous, J'aurai besoin de vos lumières pour le problème suivant : Private <font color="#
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
LISTVIEW ET EXCELLISTVIEW ET EXCEL par Fripouil
Cliquez pour lire la suite par Fripouil
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|