|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
Sujet : Sélection d'une forme dans un picturebox [ Divers / General ] (drenalyn51)
Informations & options pour cette discussion
|
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é 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="
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="#
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
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
chat tcp probleme de router -.- [ par ninja hacker ]
Bonjour! =DJ'ai étudier la source produite ici : http://www.vbfrance.com/codes/PROGRAMME-CHAT_3026.aspx pour apprendre comment faire un chat tcp. Voil
GDI+ et la souris [ par alainh2401 ]
Bonjour,J'aimerais savoir comment je pourrais faire pour dessiner un rectangle genre rectangle de selection, sur un PANEL par exemple sans pour autant
Changer couleur bordure d'une form [ par fdiedler2000 ]
Bonjour,J'utilise une WinForm qui a le look XP (la bordure en bleue) et je voudrais changer la couleur de cette bordure par exemple la mettre en verte
VB.Net OpenFileDialog1.ShowDialog [ par JeffC1977 ]
Salut à tous...Il y a quelque chose que je ne saisi pas dans mon code...Je veux ouvrir un fichier et ensuite appelere une procédure........Private
Livres en rapport
|
Téléchargements
Logiciels à télécharger sur le même thème :
|