begin process at 2012 02 15 08:17:42
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

General

 > 

Sélection d'une forme dans un picturebox


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

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 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é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="#


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,827 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales