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

Windows Forms Discussion :

dessiner un point sur un label


Sujet :

Windows Forms

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut dessiner un point sur un label
    Bonjour,

    je suis debutant sous vb.net et je voudrais connaitre la demarche a faire pour pouvoir dessiner un ou plusieur point sur un label, et si je demande pas trop , pouvoir situer son emplacement pour l'utiliser dans mon programme.


    Merci d'avance
    gilles

  2. #2
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    si j'ai bien compris, tu procédes comme suit:

    monLabel.text="....."

    pour le positionnement de ton Label sur l'écran tu as les propriétés:

    LEFT et TOP du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    Me.Label1.Top = 100
    Me.Label1.Left = 200
    Bon courage
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut
    je te remercie de ton aide mais je cherche juste un mettre un point ou un petit rond avec la souris sur un label... le label est fixe

    merci quand meme

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    En utilisant les méthodes du namespace System.Drawing, tu peux dessiner sur ton formulaire en utilisant l'événement OnPaint.
    Le PaintEventArgs contient un Graphics dans lequel tu peux dessiner à ta convenance.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut
    ok , c'est flou pour moi mais je vais deja me renseigner la dessus.......je prevois les aspirines

    gilles

  6. #6
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut
    ok , j'ai bien vu ce que tu me dictais mais cela ne correspond pas vraiment a ce que je souhaite.
    Ce que je voudrais , c'est juste pouvoir poser un point ou un petit cercje a l'endroit ou je clic sur mon label

  7. #7
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Tu peux aussi faire un truc du genre ajouter un picturebox à l'endroit du clic. Et ce picturebox contiendrait une image représentant ton point avec un fond transparent.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    à priori sur tous les objets il y a une méthode de dessin
    label.CreateGraphics.DrawEllipse devrait te permettre de faire un cercle
    ensuite dans ton evenement clic, e contient les coordonnées du clic
    e.x et e.y donc tu peux le faire autour de ton clic
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut
    merci des renseignements mais saumonagile , comment avec un clic ajouter un picturebox sans qu'il soit enregistré dans le code ?
    Sperot51 , j'ai reussit a faire ça mais le soucis est que la forme crée ( une ellipse par exemple) n'est jamais pareil , plus on s'eloigne du point de reference et plus la forme s'agrandit.....


    gilles

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut
    on m'avait donné ce code mais il ne marche pas........si quelqu'un de doué pourrait l'analyser et me dire pourquoi il ne marche pas , cela serait genial


    gilles

    Private ptSourisTemp As Point
    Private ptSouris As Point
    Private bExiste As Boolean = False

    PrivateSub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

    lstPointClick.Add(ptSouris)

    bExiste =True


    ptSouris = ptSourisTemp

    EndSub

    PrivateSub Label1_MouseMove(ByVal sender AsObject, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseMove
    Dim ptSouris As Point
    ptSourisTemp = New Point(e.X, e.Y)



    EndSub

    Private Sub Label1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Label1.Paint
    Dim pen As New Pen(Color.Black)
    if bExiste then e.Graphics.DrawEllipse(pen, ptSouris.X - 5, ptSouris.Y - 5, ptSouris.X + 5, ptSouris.Y + 5)

    EndSub

  11. #11
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par gillesrun
    merci des renseignements mais saumonagile , comment avec un clic ajouter un picturebox sans qu'il soit enregistré dans le code ?
    dim pct as new picturebox
    me.controls.Add(pct)
    pct.visible = true
    pct.backcolor = transparent ' si tu veux voir le label en dessous
    etc...


    Sperot51 , j'ai reussit a faire ça mais le soucis est que la forme crée ( une ellipse par exemple) n'est jamais pareil , plus on s'eloigne du point de reference et plus la forme s'agrandit.....

    lol
    tu le fais de la taille que tu veux le cercle, si tu le veux toujours de la meme taille, tu peux et le centre c'est toi qui le choisit aussi , et tu le mets sur le clic


    enfin je déconseillerais l'ajout d'un picturebox pour faire un rond, c'est beaucoup plus lourd (certes les machines d'aujourd'hui sont assez puissantes)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  12. #12
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut
    sperot , c'est sympa mais j'ai oublié de te dire que je suis debutant......ce bout de code , je place a quel moment et quel endroit ??

    merci quand

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut
    lol
    tu le fais de la taille que tu veux le cercle, si tu le veux toujours de la meme taille, tu peux et le centre c'est toi qui le choisit aussi , et tu le mets sur le clic
    je vais abuser de ta patience mais comment definir la taille du cercle ???

  14. #14
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    label1.CreateGraphics.DrawEllipse(Drawing.Pens.Black, e.x - 3, e.y - 3, 6, 6)
    devrait aller

    il suffit de lire l'aide
    une fois que tu tapé drawellipse il te propose 4 surcharges et t'expliques à quoi servent les parametres
    en l'occurence un point en haut à gauche du rectangle engrlobant l'ellipse et la taille de ce rectangle (width et height)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut
    merci sperot , ça marche commeje le voulais , enfin juste encore quelque modification mais avec ce que tu m'as ecrit , je vais nettement avancer.


    merci


    gilles

  16. #16
    Rédacteur
    Avatar de JauB
    Homme Profil pro
    Freelancer
    Inscrit en
    Octobre 2005
    Messages
    1 792
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Maroc

    Informations professionnelles :
    Activité : Freelancer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 792
    Points : 2 914
    Points
    2 914
    Par défaut
    penser au résolu
    Mes articles, Mon Blog

    Rubrique Jasper/iReport :
    ------- Forum Jasper --------
    ----- FAQ Jasper/iReport -----


  17. #17
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut
    P'tit soucis.........ce code marche tres bien mais il y a un soucis , quand on reduit la fenetre et qu'on l"agrandis a nouveau , ben tout a disparu !!
    Je sais que sous vb.6 il y avais la methode autoredraw mais sous vb.net , rien du tout.
    Quelqu'un aurait un truc pour ça ??

    merci d'avance

  18. #18
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    il faut tout redessiner dans l'évènement paint de ta feuille
    le probleme c'est qu'il faut savoir quoi dessiner

    là ca depend de ce que tu fais exactement
    si c'est que des labels qui font ca et que tu en as plusieurs labels sur ta feuille je te propose de recréer un label perso en rajoutant le code qui gère cette fonction
    sinon détaille un peu ce que tu veux faire
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  19. #19
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 24
    Points : 1
    Points
    1
    Par défaut
    en gros , c'est un programme sportif ( tir a l'arc ). j'ai une cible dessiné a l'aide de label, et je voudrais quand je clic sur un label correspondant a un score , qu'il y ai un point ( ça c'est bon ) ! apres un calcul se fera mais bon , ça je gere tout seul.
    Le seul soucis, c'est que tout disparais!
    tiens , je te met le bout de code que j'utilise:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Dim myBrush As New System.Drawing.SolidBrush(System.Drawing.Color.Black)
        Dim labelGraphics As System.Drawing.Graphics
     
        Private Sub Label49_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label49.MouseClick
            Dim labelGraphics As System.Drawing.Graphics
            labelGraphics = Label49.CreateGraphics()
            Label49.CreateGraphics.FillEllipse(myBrush, New Rectangle(e.X - 3, e.Y - 3, 4, 4))
        End Sub
     
        Private Sub Label51_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label51.MouseClick
            Dim labelGraphics As System.Drawing.Graphics
            labelGraphics = Label51.CreateGraphics()
            Label51.CreateGraphics.FillEllipse(myBrush, New Rectangle(e.X - 3, e.Y - 3, 4, 4))
        End Sub
    Et l'evenement paint me cause un soucis avec la partie:
    Label51.CreateGraphics.FillEllipse(myBrush, New Rectangle(e.X - 3, e.Y - 3, 4, 4))

    " ne correspont pas au type paint " .......en gros.


    gilles

  20. #20
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    deja e.x - 3 , e.y - 3 , 4 , 4 il faudrait e.x - 2 et e.y -2 pour etre logique
    en fait e.x et e.y c'est le point ou on clic et le rond si on veut qu'il soit centré il faut s'éloigner d'autant de chaque coté
    si tu dis qu'il fait 4 de diametre, le bord gauche est à 2
    moi j'avais mis 3 et 6

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'le code
    Dim labelGraphics As System.Drawing.Graphics
    labelGraphics = Label49.CreateGraphics()
    ne sert à rien, tu n'utilises pas la variable labelgraphics
    en plus tu créé cette variable dans une sub et dans le form, donc les variables sont différentes


    dans l'evenement paint tu ne peux pas faire e.x et e.y
    e contient tous les arguments necessaire à un evenement mais il est différent selon l'evenement
    des fois e est un painteventsargs, des fois un mouseeventargs ...


    sinon est-ce qu'il peut y avoir plusieurs rond dessiné à la fois par label ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. dessiner ligne en click sur une label
    Par djouk dans le forum VB.NET
    Réponses: 4
    Dernier message: 21/05/2010, 13h09
  2. Dessiner un Point sur une image
    Par Thebaloo dans le forum Interfaces Graphiques
    Réponses: 1
    Dernier message: 06/04/2010, 15h35
  3. Dessiner un point sur l'écran
    Par Nicolas123 dans le forum OpenGL
    Réponses: 5
    Dernier message: 14/06/2009, 23h04
  4. Dessiner un point sur un pixmap avec GTK2
    Par jijiz dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 14/04/2008, 17h52

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