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

C# Discussion :

Provoquer event Paint


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut Provoquer event Paint
    Re bonjour !

    .net actualise mon graphic mais alors vraiment pas quand je le veux, y a-t'il un moyen de provoquer l'event OnPaint()?

    j'ai essayé d'utiliser Graphics g = this.createGraphics() et de dessiner dans une autre méthode, mais rien a faire ca dessine rien du tout

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Normalement, en tapant la methode Invalidate() tu declenches
    le Redraw de ton application

    Apres, en dehors de cette action.. c'est Windows qui te redessine

    Genre, parce que tu modifies des valeurs etc...

    Evidemment... dans le OnPaint, ne pas faire d'Invalidate() sinon ca fait un
    peu la zouille

    The Monz, Toulouse

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut
    ba non , le redraw ne se fait toujours pas au bon moment.

    Et pour la methode createGraphics(), pourquoi lorsque je recupere l'objet graphics j'appel une méthode dessus genre drawLine(), il y a rien qui se dessine dans ma form, alors ke y a vraiment que ce draw la pour le moment. :s Il faut indiquer qui est le container ???

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    ca depend ou tu recuperes le CreateGRaphics... car si tu le recuperes dans une méthode autre que le paint, tu as le risque voir la certitude qu'au prochain Paint tout sera "écraser"

    En règle général .. tous les Paint doivent etre fait dans le OnPaint()
    (bien sur, dans le OnPaint, tu peux appeler des méthodes qui font du draw, mais seulement dans le OnPaint elles doivent etre appeler sous peine de risquer de voir disparaitre les objets déssiner en dehors du Paint...

    C'est la règle sous Windows depuis l'origine des temps

    The Monz, Toulouse

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut
    donc ca veut dire, que si je veux juste ajouter un élément à mon graphique 10 minutes plus tard je dois absolument TOUT redessiné???

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Ca depend ce que tu rajoutes dans ton graphique

    Si tu rajoutes un élément de type Controls, il suffit de l'ajouter à ton objet Controls de ta form ou de ton Usercontrol

    mais si il s'agit d'un élément graphique, oui , il faudra que tu redessines tout

    Mais c'est la logique Windows qui veut cela...

    En effet, si tu fais un Hide, ou Maximize, ou autre action changeant ta fenetre,
    si tu fais passer un programme par "dessus" ta fenetre, le Paint sera levé et donc, il faudra que tu redessines "tout" pour que tout soit vu.. sinon, tu auras ce soucis là...

    C'est pas une grosse contrainte non plus...
    (evidemment, ca demande à optimiser le dessin surtout quand les elements
    à dessiner sont plus que nombreux

    The Monz, Toulouse

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

Discussions similaires

  1. Problème Event Paint
    Par Kropernic dans le forum VB.NET
    Réponses: 8
    Dernier message: 10/09/2013, 14h16
  2. rebond ou "begayement" de l'event paint
    Par olibara dans le forum Windows Forms
    Réponses: 0
    Dernier message: 02/10/2011, 19h08
  3. Event Paint sur button
    Par olibara dans le forum C#
    Réponses: 4
    Dernier message: 09/05/2008, 18h15
  4. Events onclick provoque scrolling top page
    Par speedev dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 12/12/2007, 12h32
  5. Réponses: 1
    Dernier message: 03/08/2006, 13h25

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