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 :

[.NET 2.0] TreeView - Probleme d'affichage


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 120
    Par défaut [.NET 2.0] TreeView - Probleme d'affichage
    J'ai developpé un userControl qui contient un TreeView.
    Je souhaite pouvoir initialiser (avant afichage) ce TreeView différemment de sa valeur par défaut (la plus courament utilisée).

    Comme chacun des clients à la possbilité de construire son propre TreeView, utilisé pour diverses fonctions, dans le UserControl j'ai créé les propriétés :
    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
     
            public TreeView Selection
            {
                get
                {
                    return this.treeView1;
                }
                set
                {
                    this.treeView1.BeginUpdate();
                    this.treeView1=value;
                    this.treeView1.EndUpdate();
                }
            }
            public TreeNode SelectedNode
            {
                 get
                {
                    return this.treeView1.SelectedNode;
                }
                set
                {
                    this.treeView1.SelectedNode = value;
                    this.treeView1.Refresh();
                }
            }
    Les clients construisent les deux TreeView en utilisant :
    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
     
    private TreeView CreateTreeView1(ImageList imgList, out TreeNode DefaultSelectedNode)
            {
                System.Windows.Forms.TreeNode treeNode47 = new System.Windows.Forms.TreeNode("Text1", 1, 0);
                System.Windows.Forms.TreeNode treeNode48 = new System.Windows.Forms.TreeNode("Text2", 1, 0);
                DefaultSelectedNode = treeNode47;
                System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MemberCriteresPhysiqueSelect));
                System.Windows.Forms.TreeView treeView1 = new System.Windows.Forms.TreeView();
                System.Windows.Forms.ImageList imageList1 = new System.Windows.Forms.ImageList(this.components);
                // 
                // treeView1
                // 
                treeView1.CheckBoxes = true;
                treeView1.FullRowSelect = true;
                treeView1.ImageIndex = 0;
                treeView1.ImageList = imgList;
                treeView1.Location = new System.Drawing.Point(24, 9);
                treeView1.Name = "treeView1";
     
                treeNode47.Checked = true;
                treeNode47.ImageIndex = 1;
                treeNode47.Name = "treeNode47";
                treeNode47.SelectedImageIndex = 0;
                treeNode47.Text = "Text1";
                treeNode48.Checked = true;
                treeNode48.ImageIndex = 1;
                treeNode48.Name = "treeNode47";
                treeNode48.SelectedImageIndex = 0;
                treeNode48.Text = "Text2";
                treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
                treeNode47,
                treeNode48});
                treeView1.SelectedImageIndex = 0;
                treeView1.Size = new System.Drawing.Size(264, 271);
                treeView1.TabIndex = 0;
                return treeView1;
            }
            private TreeView CreateTreeView2(ImageList imgList, out TreeNode DefaultSelectedNode)
            {
                System.Windows.Forms.TreeNode treeNode47 = new System.Windows.Forms.TreeNode("Text2", 1, 0);
                DefaultSelectedNode = treeNode47;
                System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MemberCriteresPhysiqueSelect));
                System.Windows.Forms.TreeView treeView1 = new System.Windows.Forms.TreeView();
                System.Windows.Forms.ImageList imageList1 = new System.Windows.Forms.ImageList(this.components);
                // 
                // treeView1
                // 
                treeView1.CheckBoxes = true;
                treeView1.FullRowSelect = true;
                treeView1.ImageIndex = 0;
                treeView1.ImageList = imgList;
                treeView1.Location = new System.Drawing.Point(24, 9);
                treeView1.Name = "treeView1";
     
                treeNode47.Checked = true;
                treeNode47.ImageIndex = 1;
                treeNode47.Name = "treeNode47";
                treeNode47.SelectedImageIndex = 0;
                treeNode47.Text = "Text2";
                treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
                treeNode47});
                treeView1.SelectedImageIndex = 0;
                treeView1.Size = new System.Drawing.Size(264, 271);
                treeView1.TabIndex = 0;
                return treeView1;
            }
    appellés de la la façon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                TreeNode firstNode;
                Selection = this.CreateTreeView2(Images, out firstNode);
                SelectedNode(firstNode);
    Le problème c'est que la nouvelle valeur n'est jamais affichée.
    Même si au niveau des données dans treeView1, je vois bien les données au niveau de l'espion.

    Qu'ai-je oublié ?

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 120
    Par défaut
    Up !

    personne n'a déjà rencontré ce type de propblème ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 120
    Par défaut
    pas de chance avec mes qustions et de mon coté je n'ai pas avancé d'1 mm...

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut
    J'ai malheureusement le même problème. Quelqu'un a t-il trouvé une solution ?

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2007
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 5
    Par défaut Résolu
    Apparemment ce soucis arrive lorsque l'on crée un composant qui hérite d'un treeview. Je le nomme "MonComposant"
    Lorsque l'on definit la propriété .SelectedNode sur MonComposant, on ne pointe pas sur la bonne instance. Regardez le .nodes.count (il est à 0)

    Pour palier à cela j'ai créé une propriété dans MonComposant:

    public TreeView BaseTreeView
    {
    get { return treeView1; }
    }

    Je definis donc la propriété .SelectedNode en passant par BaseTreeView :

    MonComposant.BaseTreeView.SelectedNode = node;
    MonComposant.BaseTreeView.Focus();

Discussions similaires

  1. [vb.net][gdi+] probleme d'affichage
    Par graphicsxp dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/12/2005, 12h06
  2. [vb.net] probleme d'affichage
    Par graphicsxp dans le forum Windows Forms
    Réponses: 14
    Dernier message: 04/11/2005, 14h17
  3. [CR.NET] Probleme d'affichage d'image
    Par ahervieux dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 25/06/2005, 15h06
  4. [VB.NET] Probleme d'affichage entre ListBox/TextBox
    Par Monster77 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/08/2004, 12h02
  5. [VB.NET] Probleme d'affichage de controle
    Par mic56 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 09/06/2004, 16h03

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