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. #21
    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
    oui , il peut y avoir jusqu'a 30 ronds sur un label mais bon , c'est vraiment un cas extreme.

  2. #22
    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
    alors dans ce cas là je te propose de recréer un label perso

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    public class Cible
      inherits system.windows.forms.Label
     
      private _Impacts as new microsoft.visualbasic.collection
     
     
      sur mouse clic: 
        dim PT as new system.Drawing.point (e.x,e.y)   
        _Impacts.add PT
        dessiner point comme tu le faisais avant
     
     
        sur evenement me.paint:
        for each PT as system.drawing.point in _Impacts
          dessiner point avec PT.x et PT.y au lieu de e.x et e.y
        next
    ensuite tu génère ton projet et tu devrais avoir un nouveau composant dans la boite à outils nommé cible
    et tu poses des cibles au lieu de label et ta feuille ne doit donc plus contenir le code qui gère les cercles car l'objet cible les gere tout seul et le redessine tout seul
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #23
    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 , je vais essayer et je te tiens au courant.............merci pour l'aide !!!



    gilles

  4. #24
    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
    bon , voila le code que ça donne ( si le debutant que je suis n'a pas merdé ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    Option Strict Off
    Option Explicit On
    Imports System.IO
    Imports System.Timers
     
     
     
     
    Public Class Cible
        Inherits System.Windows.Forms.Label
     
        Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
            Dim _Impacts As New Microsoft.VisualBasic.Collection
            Dim PT As New System.Drawing.Point(e.X, e.Y)
            _Impacts.Add(PT)
            Dim labelGraphics As System.Drawing.Graphics
            labelGraphics = Me.CreateGraphics()
            Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, e.X - 3, e.Y - 3, 4, 4)
        End Sub
     
        Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
            Dim _Impacts As New Microsoft.VisualBasic.Collection
     
            For Each PT As System.Drawing.Point In _Impacts
                Dim labelGraphics As System.Drawing.Graphics
                labelGraphics = Me.CreateGraphics()
                Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, PT.X - 3, PT.Y - 3, 4, 4)
     
            Next
        End Sub
    End Class
    mais quand je genere, et que je veux passer en mode concepteur ben là il est ecrit : " pour ajouter des composants a votre classe, faites les glisser dans la boite a outil et utiliser la fenetre propriété pour definir leur proprieté. Pour creer des methodesv et des evenements pour votre classe, cliquez içi pour passer en mode code "

    Chose qui est bien , c'est que la creation de nouveau element est pris en compte !

    Dit , si mon programme marche et que je suis oblihgé de creer une multinationale pour le vendre , je t'offre 0,01 % des benefices ( ha le pingre )

    gilles

  5. #25
    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
    alors deja, option strict off c'est interdit, surtout pour les debutants
    donc option strict on !
    ca oblige à déclarer les variables et ca vérifie ton code pour éviter les bugs

    sinon quand tu mets du code, mets la balise du code du forum pour qu'il fasse la mise en forme
    [ code] et [ / code] sans les espaces

    ce qui donne ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
     
    Option Strict Off
    Option Explicit On
    Imports System.IO
    Imports System.Timers
     
     
     
     
    Public Class Cible
        Inherits System.Windows.Forms.Label
     
        Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
            Dim _Impacts As New Microsoft.VisualBasic.Collection
            Dim PT As New System.Drawing.Point(e.X, e.Y)
            _Impacts.Add(PT)
            Dim labelGraphics As System.Drawing.Graphics
            labelGraphics = Me.CreateGraphics()
            Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, e.X - 3, e.Y - 3, 4, 4)
        End Sub
     
        Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
            Dim _Impacts As New Microsoft.VisualBasic.Collection
     
            For Each PT As System.Drawing.Point In _Impacts
                Dim labelGraphics As System.Drawing.Graphics
                labelGraphics = Me.CreateGraphics()
                Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, PT.X - 3, PT.Y - 3, 4, 4)
     
            Next
        End Sub
    End Class
    et donc là on voit que ton code ne va pas du tout


    ensuite quand tu dim une variable, elle a une portée définie

    dans une classe :
    private = dim = la classe connait la variable
    protected = la classe et ses enfants (suite à héritage) connaissent la variable
    friend = visible par tout le projet mais pas les projets d'a coté, des fois un exe est composé de plusieurs projets via des dll par exemple
    public = tout le monde peut y avoir accès, meme de très loin (autre feuille etc...)

    dans une sub:
    dim = seule la sub ou fonction connait la variable
    static = la variable existe que dans la sub mais garde sa valeur entre 2 passages

    et toi tu as 2 sub ou tu definis la collection
    à la fin de la sub la variable se vide et est détruite
    alors que moi je t'avais dit de la mettre en private


    cette classe doit etre dans un fichier à part de celui de ta feuille
    dans ton projet tu fais ajouter élèment puis classe
    tu mets le code dedans
    l'icone va changer et si tu double clic sur ta classe tu auras encore le message qu'il n'y a pas de visuel et que tu peux rajouter des composants
    mais n'en rajoute pas c'est normal
    et ensuite tu génère le projet et sur ta feuille tu regarde dans la barre d'outils

    sinon tes subs qui s'appellent Form1_MouseClick t'es plus dans ta feuille
    et me désigne ton objet Cible actuel

    et maintenant je veux 0,02 % !
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #26
    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 , tout a marcher , le controle cible est bien crée mais bon , tout s'efface toujours quand je met la fenetre en reduit .

    Je te donne 0,01 % mais tu peux prendre le yacht un week end sur deux

  7. #27
    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
    redonne le nouveau code
    et t'as supprimé les labels de ta feuille pour poser des cibles à la place ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  8. #28
    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 Balises [CODE], essaie d'y penser la prochaine fois.
    voila le code de la class :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    Public Class Cible
        Inherits System.Windows.Forms.Label
     
        Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
            Dim _Impacts As New Microsoft.VisualBasic.Collection
            Dim PT As New System.Drawing.Point(e.X, e.Y)
            _Impacts.Add(PT)
            Dim labelGraphics As System.Drawing.Graphics
            labelGraphics = Me.CreateGraphics()
            Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, e.X - 3, e.Y - 3, 4, 4)
        End Sub
     
        Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
            Dim _Impacts As New Microsoft.VisualBasic.Collection
     
            For Each PT As System.Drawing.Point In _Impacts
                Dim labelGraphics As System.Drawing.Graphics
                labelGraphics = Me.CreateGraphics()
                Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, PT.X - 3, PT.Y - 3, 4, 4)
     
            Next
        End Sub
    End Class
    et oui , j'ai virer les labels

  9. #29
    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
    Dans le paint, si tu fais ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim _Impacts As New Microsoft.VisualBasic.Collection
    Tu réinitialises la collection à chaque fois. Donc c'est normal, que tu perdes les points.
    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

  10. #30
    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
    euh gilles t'abuses
    j'ai ecrit un pavé c'est pas pour rien alors tu le lis stp !!! (et tu le comprends aussi sinon on va pas avancer)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #31
    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
    bon , apres une pause et suite à l'enguelade du chef sperot ( ), j'ai mis en private ce que tu m'a dit , c'est a dire en debut de class ( enfin si j'ai bien compris !)
    donc , voila ce que ça donne.....


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Public Class Cible
        Inherits System.Windows.Forms.Label
        Private _Impacts As New Microsoft.VisualBasic.Collection
        Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
     
            Dim PT As New System.Drawing.Point(e.X, e.Y)
            _Impacts.Add(PT)
            Dim labelGraphics As System.Drawing.Graphics
            labelGraphics = Me.CreateGraphics()
            Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, e.X - 3, e.Y - 3, 4, 4)
        End Sub
     
        Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
     
     
            For Each PT As System.Drawing.Point In _Impacts
                Dim labelGraphics As System.Drawing.Graphics
                labelGraphics = Me.CreateGraphics()
                Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, PT.X - 3, PT.Y - 3, 4, 4)
     
            Next
        End Sub
    End Class
    gilles

  12. #32
    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
    alors là tu te fous de moi
    je t'ai dit 5 trucs à corriger et y a encore plein de conneries !
    les balises code c'est entre crochet qu'il faut les mettre et sans point
    e.x - 3 je t'ai expliqué pourquoi c'était pas bon
    et dim labelgraphics sert à rien je te l'ai dit aussi !!!


    et il faut comprendre pourquoi private sur la collection !

    le but de ce code c'est qu'à chaque fois que l'utilisateur clic, tu dessines un point et tu enregistre ce point (tu le mets dans une collection)
    une collection est un groupe d'objet, l'avantage c'est qu'on peut dire de faire une chose sur tout un groupe

    ensuite sur l'evenement paint (qui est déclenché quand ta fenetre se réaffiche)
    tu redessine tous les points que tu as mis dans la collection
    en faisant dim collection dans une sub, elle est vidée en sortant de la sub donc pour retrouver les points dans la sub d'à coté ca peut pas aller !
    j'ai expliqué precedement les types de déclaration et leur portée


    edit : histoire de changer les "modos" me "courent après" pour mon ton que je qualifierais d'expressif
    et j'ajoute qu'il ne faut pas le prendre mal, c'est juste pour donner un peu de refief, je suis là pour aider (ce que je fais) et comme le ferais un prof, je hausse le ton quand l'élève n'est pas à fond dedans
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #33
    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
    oula , j'ai les oreilles qui sifflent.........mais t'as finis de me crier dessus ????

    Bon , pour les dim labelgraphics, je les avais virer mais je t'ai copier le mauvais code, e.x - 3 pareil , c'est devenue e.x - 2.... a nouveau le code mais si tu as envie de gueuler maintenant , crie dans le langage des signes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    Public Class Cible
        Inherits System.Windows.Forms.Label
     
        Private _Impacts As New Microsoft.VisualBasic.Collection
     
        Private Sub Form1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseClick
     
            Dim PT As New System.Drawing.Point(e.X, e.Y)
            _Impacts.Add(PT)
     
            Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, e.X - 2, e.Y - 2, 4, 4)
     
        End Sub
     
        Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
     
     
            For Each PT As System.Drawing.Point In _Impacts
     
                Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, PT.X - 2, PT.Y - 2, 4, 4)
     
            Next
        End Sub
    End Class

    gilles

  14. #34
    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
    Dans l'événement click, ce n'est pas la peine de dessiner le point, tu devrais plutot demander à la fenêtre de se rafraichir avec un Invalidate() par exemple. Car de toute façon, tu vas redessiner ce point quand tu passeras dans l'événement paint.

    EDIT : Et d'ailleurs pourquoi ne pas utiliser une collection typée de points plutôt qu'une collection générique; ça serait plus joli avec un List<System.Drawing.Point> non ?
    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

  15. #35
    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 vais essayer car pour l'instant, quand je diminue ma fenetre, ben tout s'efface quand meme. Je vais voir pour la methode invalidate()


    Merci du conseil

  16. #36
    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 SaumonAgile
    Dans l'événement click, ce n'est pas la peine de dessiner le point, tu devrais plutot demander à la fenêtre de se rafraichir avec un Invalidate() par exemple. Car de toute façon, tu vas redessiner ce point quand tu passeras dans l'événement paint.

    EDIT : Et d'ailleurs pourquoi ne pas utiliser une collection typée de points plutôt qu'une collection générique; ça serait plus joli avec un List<System.Drawing.Point> non ?

    je pense que le invalidate est un peu violent, surtout quand on voit les performances graphiques du framework ...

    et pour la collection typée en effet c'est mieux mais vu que c'est débutant je pense qu'une collection normale est mieux pour apprendre à quoi ca sert et comment ca fonctionne
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  17. #37
    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
    Salut sperot, j'ai rajouté " me.invalidate " dans la partie paint pour essayer , ça fonctionne, les points reapparaissent mais en clignotant , version sapin de noel !!

  18. #38
    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
    J'ai essayé aussi avec la methode " refresh " pareil que pour invalidate mais bon , ça clignote moins !!

  19. #39
    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
    Citation Envoyé par sperot51
    je pense que le invalidate est un peu violent, surtout quand on voit les performances graphiques du framework
    C'est parce que la plupart du temps, la méthode est mal utilisée.
    Invalidate sans argument invalide toute la fenêtre, il existe des surcharges de la méthode qui prennent en paramètre des regions ou des rectangles pour spécifier la région à redessiner. Dans le cas présent il suffit de passer en paramètre la région du label.
    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

  20. #40
    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
    Apres 3 tubes d'aspirine et pas mal d'injure ( ), j'ai reussit à creer une region sous forme de rectangle mais bon , la methode invalidate clignote toujours à la reouverture de la fenetre ..........
    je met le code et le premier qui rigole , ben.....heu........heu ,enfin voilà

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
     Public Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
     
            For Each PT As System.Drawing.Point In _Impacts
     
                Me.CreateGraphics.DrawEllipse(Drawing.Pens.Black, PT.X - 2, PT.Y - 2, 4, 4)
     
                Dim bloc As New Rectangle(0, 0, 492, 447)
     
                e.Graphics.DrawRectangle(Pens.Black, bloc)
     
                Invalidate(bloc)
            Next
     
        End Sub
    gilles

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