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)

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 AsInteger

PrivateSub PictureBox1_MouseDown(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown

'Si click gauche

If e.Button = MouseButtons.Left Then

'Initialisation des coordonnes

Xstart = e.X

Ystart = e.Y

Xend = e.X

Yend = e.Y

'Declaration du rectangle

Dim r As Rectangle

'On dessine le rectangle en utilisant la fonction RectangleToScreen

'qui convertie les coordonnes du rectangle par rapport a l'ecran

r = PictureBox1.RectangleToScreen(

New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))

'On dessine un rectangle inversee qui laissera visible l'interieur du rectangle

ControlPaint.DrawReversibleFrame(r,

Me.BackColor, FrameStyle.Dashed)

EndIf

'End If

EndSub

PrivateSub PictureBox1_MouseMove(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove

'Quand clique gauche

If e.Button = MouseButtons.Left Then

'On efface l'ancien rectangle

Dim 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 bouge

Xend = e.X

Yend = e.Y

'On redessine le rectangle avec les nouvelles coordonnes de la souris

r = PictureBox1.RectangleToScreen(

New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))

ControlPaint.DrawReversibleFrame(r,

Me.BackColor, FrameStyle.Dashed)

EndIf

EndSub

PrivateSub 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 rectangle

Dim r As Rectangle

r = PictureBox1.RectangleToScreen(

New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))

ControlPaint.DrawReversibleFrame(r,

Me.BackColor, FrameStyle.Dashed)

EndIf

EndSub

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 Class


Ca 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


Nos sponsors

Sondage...

CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.