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

VB.NET Discussion :

dessiner un panel gradué


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 9
    Par défaut dessiner un panel gradué
    Bonjour,

    dans un programme je cherche à construire un plan gradué pour une représentation de points. pour cela je dois créer un panel ou je dessine les axes et leurs flèches avec les graduations.

    j'ai cherché partout mais rien trouvé, je n'arrive pas à trouver un moyen qui me permet de graduer mon panel (ou le transformer en un container gradué)

    j'ai eu recours à vous, j'espère trouver une solution

    Merci d'avance!

  2. #2
    Membre très actif
    Homme Profil pro
    Retraité intello
    Inscrit en
    Juillet 2012
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Retraité intello

    Informations forums :
    Inscription : Juillet 2012
    Messages : 186
    Par défaut
    Bonjour nayoura

    Je viens de vérifier qu'un panel possède l'événement Paint. Vous pouvez donc dessiner dessus.

    Cordialement.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    sur l'event paint du panel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    e.graphics.Drawline
    e.Graphics.Drawstring 
    etc...
    pour les coordonnées, l'axe des Y est inversé, 0 est en haut le maximum est en bas (lepanel.height)
    Citation Envoyé par Jean-Marie Grave Voir le message
    Je viens de vérifier qu'un panel possède l'événement Paint
    pour info, tous les controles (Form aussi) héritent de la classe control, qui possède l'évènement paint, donc on peut dessiner sur tous les controles
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut
    bonjour nayoura
    Comme dit par Pol63 ,l'origine des coordonnes d'un control vb.net est situe en haut ,à gauche(top,left)....

    Pour aller vite tu peux toujours utiliser l'event paint du panel et la fonction ControlPaint.DrawGrid qui dessine une grille de pixel (c'est preferable à un quadrillage car elle permet de mieux vor le dessin à l'ecran et sur papier)....

    voici un exemple avec une grid et ses axes(tu peux personaliser le trait des axes et leurs extremites avec le Pen)....
    Les coords souris(quand on deplace la souris) :
    - par rapport au panel (appelee en vb.net coord.client) sont affiches
    -ainsi que les coords souris rapportees au centre de la Grid (repere Grid)...

    Seule chose que je n'ai pas faite c'est inversion de l'axe Y(exprimer la coord y de bas en haut comme on le fait au college.....)....c'est inutile parce que des que on veut imprimer il faut revenir au system vb.net....

    pour l'utiliser tu:
    -crees un form
    -droppe un panel dessus
    -copie le code
    puis generer et executer.........
    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
     
    Public Class Form4
        '-------------------rectangle grid----------
        Private rectGrille As Rectangle
     
        Public Sub New()
     
            ' Cet appel est requis par le Concepteur Windows Form.
            InitializeComponent()
     
            ' Ajoutez une initialisation quelconque après l'appel InitializeComponent().
     
            '-------------------coords winform(origine top, left) ----------
            Me.Text = "Coords Panel :" & Me.Panel1.Location.X.ToString & " , " & Me.Panel1.Location.Y.ToString
            Me.Font = New Font("tahoma", 12)
     
     
            '-------------------coords panel (origine centre panel ) ----------
            rectGrille = New Rectangle(0, 0, 0, 0)
     
            Me.Panel1.Dock = DockStyle.Fill
     
            '-----------------------mets à jour l'affiche sur resizin du form-----------------------
            Me.ResizeRedraw = True
     
     
        End Sub
     
     
     
     
     
     
        'dessine un grid sur le panel
        Private Sub Panel1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
            e.Graphics.Clear(Color.White)
            'rectangle client panel 
            Dim tempRect As Rectangle = Me.Panel1.ClientRectangle
     
            'inflate  veut dire"reduire" les 2 dimensions de -20,-20 ou "dilater" de 20,20  
            tempRect.Inflate(-20, -20)
            rectGrille = tempRect
            'dessine bord rectangulaire de la grille(coords par rapport au form 20,20)
            e.Graphics.DrawRectangle(Pens.Black, rectGrille)
     
     
     
            ' dessine grille de points espace de 15,15 pixels  
            ControlPaint.DrawGrid(e.Graphics, rectGrille, New Size(15, 15), Color.White)
     
            'dessine une croix au centre du rectangule de la grille
            Dim penCroix As Pen = New Pen(Color.Brown, 1.0)
            penCroix.EndCap = Drawing2D.LineCap.ArrowAnchor
            penCroix.Alignment = Drawing2D.PenAlignment.Center
     
            'ligne horizont.
            e.Graphics.DrawLine(penCroix, New Point(rectGrille.Left, rectGrille.Top + rectGrille.Height / 2), New Point(rectGrille.Left + rectGrille.Width, rectGrille.Top + rectGrille.Height / 2))
            'ligne verticale.
            e.Graphics.DrawLine(penCroix, New Point(rectGrille.Left + rectGrille.Width / 2, rectGrille.Top), New Point(rectGrille.Left + rectGrille.Width / 2, rectGrille.Bottom))
     
     
            penCroix.Dispose()
        End Sub
        '"tracke"  position du cursor sur panel
        Private Sub Panel1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Panel1.MouseMove
            Me.Text = "Coords Panel :" & e.Location.X.ToString & " , " & e.Location.Y.ToString
     
            Me.Text = Me.Text & " Coords Grid :" & (e.Location.X - rectGrille.Top - rectGrille.Width / 2).ToString & " , " & (e.Location.Y - rectGrille.Top - rectGrille.Height / 2).ToString
     
        End Sub
    End Class
    bon code............................

Discussions similaires

  1. Dessiner un axe gradué
    Par kouetasoury dans le forum Powerpoint
    Réponses: 0
    Dernier message: 31/08/2012, 12h23
  2. dessin sur panel pas stable
    Par Dikoudogo dans le forum Graphisme
    Réponses: 1
    Dernier message: 26/10/2008, 22h27
  3. [Panel]dessiner sans la méthode paint()
    Par paolo2002 dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 20/10/2006, 02h35
  4. [pylab]mettre le dessin dans un panel
    Par deeal dans le forum Calcul scientifique
    Réponses: 5
    Dernier message: 01/06/2005, 13h37
  5. Dessin dans les panels d'un TStatusBar
    Par Amenofis dans le forum Composants VCL
    Réponses: 4
    Dernier message: 31/08/2004, 18h45

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