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 :

Ecrire du texte dans panel


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut Ecrire du texte dans panel
    Bonjour,
    J'ai un panel dans lequel j'écris du texte avec un objet Graphics.
    Mon problème est que lors du Load de la Form le texte dans le panel n'apparaît pas.
    Lorsque je force OnPaint(cacher/afficher) la Form ou avec un bouton (Me.invalidate) cela fonctionne.
    Lorsque j'écris du texte directement sur la Form, cela fonctionne bien.
    Comment afficher le texte, dans le panel, lors du premier affichage de la fenêtre?
    Voici le code dans OnPaint
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        MyBase.OnPaint(e)
        S_Ecrire()         'Ecrire texte
      End Sub
    Merci à tous. Jean

  2. #2
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Je ne reproduis pas le probléme avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Public Class panelText
        Inherits Panel
     
        Protected Overrides Sub OnPaint(ByVal e As System.Windows.Forms.PaintEventArgs)
            MyBase.OnPaint(e)
     
            e.Graphics.DrawString("Test de texte dans le panel", Me.Font, New SolidBrush(Color.Red), 0, 0)
     
        End Sub
     
    End Class
    Le texte est bien affiché au load de la form.

    Il y a quoi derriére le S_Ecrire() ? Et pourquoi tu lui passes pas le e.graphics ?

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut
    Bonjour,
    En fait j'essaie d'apprendre à dessiner en VB.
    Sur une form j'ai placé un bouton et un panel dans lequel je veux dessiner/écrire.
    Voici mon code
    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
    Protected Overrides Sub OnPaint(ByVal e As PaintEventArgs)
        MyBase.OnPaint(e)
        S_Ecrire()
      End Sub
     
      Private Sub S_Ecrire()
        Dim pen As New Pen(Color.Black, 10)
        Dim G As Graphics
        Dim Rect As RectangleF
        Dim PT As New PointF(50, 50)
        Dim Sz As New SizeF(200, 50)
        Dim Ft As New StringFormat
        Ft.Alignment = StringAlignment.Center
        Ft.LineAlignment = StringAlignment.Center
        Rect = New RectangleF(PT, Sz)
        G = Panel1.CreateGraphics
        G.DrawString("Ecrire texte sur panel", New Font("Arial", 14, FontStyle.Italic), Brushes.Blue, Rect, Ft)
        G.DrawRectangle(Pens.Aqua, 50, 50, 200, 50)
        G.Dispose()
        pen.Dispose()
      End Sub
     
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Invalidate()
      End Sub
    Au départ le texte apparaît brièvement puis disparaît(sans doute masqué par le panel).
    Si j'active me.invalidate(click sur le bouton) ou si je masque/affiche la form le texte apparaît bien dans le panel.
    Dans l'exemple d'olsimare l'écriture se fait directement sur la form, pas de problème, le texte apparaît.
    Merci pour vos réponses. Jean

  4. #4
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Ca marche pas trop mal chez moi ce code... sauf dans le designer. C'est tout ce qu'il y a ?

    Sinon, dans mon exemple c'est bien directement sur le panel que j'écris (mais un panel customizé ), passer par le onpaint de la form pour gérer le dessin sur un control ne me semble pas le plus judicieux.

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 374
    Points : 451
    Points
    451
    Par défaut [résolu]
    Bonjour,
    merci pour les réponses.
    J'ai ajouté un évènement panel1.paint(...) et cela fonctionne.
    Encore merci pour l'aide.
    Jean

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ecrire du texte dans une image
    Par jeremy13 dans le forum Images
    Réponses: 11
    Dernier message: 22/01/2007, 16h12
  2. [Tkinter] ecrire un texte dans un widget entry
    Par thierry_b dans le forum Tkinter
    Réponses: 3
    Dernier message: 15/12/2005, 11h38
  3. Ecrire du texte dans les fenetres filles (MDI)
    Par trilomdor dans le forum MFC
    Réponses: 9
    Dernier message: 23/06/2004, 17h00
  4. [MFC]Ecrire du texte dans un rectangle
    Par zaz16 dans le forum MFC
    Réponses: 8
    Dernier message: 29/07/2003, 10h31
  5. comment ecrire du texte dans une window application
    Par gaut dans le forum Autres éditeurs
    Réponses: 2
    Dernier message: 16/07/2003, 10h23

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