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 :

Problème Event Paint


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut Problème Event Paint
    Hello,

    Je cherche à comprendre le fonctionnement du dessin des contrôle avec .NET.

    J'ai tenté de trouver des infos sur le net mais quand on ne sait pas quels mots clefs utilisés, c'est la galère car ça part dans tous les sens.

    En pièce jointe, un petit exemple de ce qui me pose problème.

    Sur l'image, on peut donc voir un PictureBox (contenu par un Panel avec AutoScroll à True) dans lequel j'affiche de jolis dessins .

    Quand je scrolle, la partie du PictureBox qui était caché et devient visible n'affiche pas les (jolis) dessins qu'elle devrait contenir.

    Je cherche donc des tutos sur la chose afin de pouvoir faire des dessins encore plus jolis .
    Images attachées Images attachées  

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Par défaut
    Es-tu obligé d'utiliser Windows Forms dans ton projet ?

    Car WPF me semple plus approprié pour faire ce genre de chose ...

  3. #3
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    j'ai jamais fait de wpf et j'ai 2 mois max pour tout faire donc oui par la force des choses ^^

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Bonjour,

    Il faut que tu effectues ton dessin dans l'évènement Paint de ton PictureBox.
    De ce fait, il sera persistant.

    eb.

  5. #5
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut
    Citation Envoyé par ebastien Voir le message
    Bonjour,

    Il faut que tu effectues ton dessin dans l'évènement Paint de ton PictureBox.
    De ce fait, il sera persistant.

    eb.
    Ce qui est bien sûr déjà ce que je fais...

    EDIT :
    Pour info, le code de l'event Paint du PictureBox
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
        Private Sub pb_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles pb.Paint
            Dim g As Graphics = pb.CreateGraphics
            Dim x, h As Integer
            x = 0
            h = startHour
            pb.Width = xInc * endHour - startHour
            g.DrawLine(Pens.Black, 0, 20, pb.Width, 20)
            While Not h > endHour
                g.DrawLine(Pens.Black, x, 0, x, pb.Height)
                g.DrawString(h.ToString, New Font("arial", 10), Brushes.Black, x, 0)
                x += xInc
                h += 1
            End While
        End Sub
    où startHour, endHour et xInc sont des entiers.

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Par défaut
    Dans l'évènement Paint, il n'est pas nécessaire de faire pb.CreateGraphics. Le paramètre de la proc a une propriété Graphics :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        Private Sub pb_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles pb.Paint
            Dim x, h As Integer
            x = 0
            h = startHour
            pb.Width = xInc * endHour - startHour
            e.Graphics.DrawLine(Pens.Black, 0, 20, pb.Width, 20)
            While Not h > endHour
                e.Graphics.DrawLine(Pens.Black, x, 0, x, pb.Height)
                e.Graphics.DrawString(h.ToString, New Font("arial", 10), Brushes.Black, x, 0)
                x += xInc
                h += 1
            End While
        End Sub

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    344
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 344
    Par défaut
    Je connais mal le système de rendu de Windows Forms mais je crois qu'il ne permet pas de personnaliser en totalité le rendu (notamment des contrôles de saisie comme textbox, ...), et de mémoire, c'est assez fastudieux pour un résultat médiocre.

    WPF à l'avantage, par un système de template écrit en XAML, d'autoriser la surcharge de tous les rendus de manière très simple. Le XAML est un langage à balise (style HTML) définissant toute la présentation.

    Je te conseille quand même de jeter un coup d'oeil car le temps que tu vas passer à te renseigner sur le XAML, tu le gagneras sur la définition de tes rendus.

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

Discussions similaires

  1. problème event checkboxlist
    Par Kamishu dans le forum ASP.NET
    Réponses: 8
    Dernier message: 26/03/2017, 16h22
  2. Event Paint sur button
    Par olibara dans le forum C#
    Réponses: 4
    Dernier message: 09/05/2008, 18h15
  3. Provoquer event Paint
    Par breezer911 dans le forum C#
    Réponses: 9
    Dernier message: 21/03/2007, 16h30
  4. Réponses: 1
    Dernier message: 03/08/2006, 13h25
  5. problème event.keyCode Firefox
    Par Tdeny dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 05/07/2006, 17h48

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