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 :

vb.net - Treeview - OwnerDrawText


Sujet :

VB.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 164
    Points
    164
    Par défaut vb.net - Treeview - OwnerDrawText
    Bonjour,

    Je rencontre un problème étrange avec un treeview en mode OwnerDrawText :
    Si le treeview est rempli avant la déclaration :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TrVwDoc.DrawMode = TreeViewDrawMode.OwnerDrawText
    pas de problème.
    En revanche si j'ajoute un élément après, le drawmode fais des trucs bizarres :

    si je clique sur le "+" d'un noeud, il écrit tout en haut à gauche le nom de l'enfant de ce noeud... et si je clique sur plusieurs "+" il superpose à chaque fois ces libellé... par contre le clique sur un autre libellé supprime ces abbhérations...

    Pour info, j'ai réduit le "DrawNode" à sa plus simple expression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    e.Graphics.DrawString(e.Node.Text, NodeFont, Brushes.Black, e.Bounds.Left + 2, e.Bounds.Top + 2)
    Et je rappelle que cela ne se produisait pas si je rempli le treeview AVANT la déclaration

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TrVwDoc.DrawMode = TreeViewDrawMode.OwnerDrawText
    Merci de votre aide.
    Alexandre

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 164
    Points
    164
    Par défaut
    Je précise que c'est l'ajout de "TrVwDoc.sort()" après l'ajout d'un noeud qui affole le drawnode.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    306
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 306
    Points : 164
    Points
    164
    Par défaut
    Par ailleurs, je soupconne maintenant qu'il s'agit d'un bug inavoué puisque microsoft, sur la page concernant le drawnode :

    http://msdn.microsoft.com/en-us/libr....drawnode.aspx

    ajoute discrètement dans son exemple un "myTreeView.ExpandAll()" (sans la commenter à la différence des autres instructions) qui effectivement "résout" (comprendre "masque") le problème de repaint.

    En même temps les bugs c'est une fatalité...

    Si vous savez comment éviter ce bug, vous aurez toute mon estime.
    Alexandre

Discussions similaires

  1. [VB.Net][Treeview] infobulle sur un noeud
    Par plasticgoat dans le forum Windows Forms
    Réponses: 1
    Dernier message: 18/11/2005, 16h13
  2. [vb.net][treeview] forcer +/- devant parent
    Par graphicsxp dans le forum Windows Forms
    Réponses: 6
    Dernier message: 29/09/2005, 13h54
  3. [VB.NET] TreeView
    Par bloody22 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 11/07/2005, 15h57
  4. [VB.NET] [TreeView] expand node d'un treeview
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 07/04/2005, 16h21
  5. [VB.NET] Treeview creer dynamiquement a partir d'une bd
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/03/2005, 17h02

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