Treeview et namespace

Messages postés
463
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
29 octobre 2019
- - Dernière réponse : Whismeril
Messages postés
13934
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 novembre 2019
- 29 oct. 2019 à 13:57
Bonjour
Je bloque sur un truc qui me parait tellement simple mais tellement ... inaccessible.
ex:
J'ai un treeview avec deux noeuds A et B
Chaque noeud contient deux enfants :
noeud A contient enfant 1 et enfant 2
noeud B contient enfant 3 et enfant 4
et chaque enfant contient un namespace
enfant 1 contient le namespace a
enfant 2 contient le namespace b
enfant 3 contient le namespace c
enfant 4 contient le namespace d

Mon souci
j'aimerai afficher par msgbox le contenu d'un textbox situé dans le namespace d en cliquant sur un bouton situé dans le namespace a.
J’espère vraiment avoir pu être claire.
en résumé : comment "communiquer" entre namespace dans un treeview ?

Merci de votre aide
Afficher la suite 

9 réponses

Messages postés
1960
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 novembre 2019
72
0
Merci
Bonjour
Tu dis : "et chaque enfant contient un namespace "

Les espaces de noms appelés namespace constituent une façon d'organiser les différents types intervenant dans un programme VB Net.
On peut comparer les namespace à des "dossiers" : le comportement est identique à un dossier . Il est possible d’avoir des éléments de même nom dans différents namespace .
Tout le framework.net repose sur les espaces de noms, il permet surtout une bonne organisation et facilite la recherche des éléments.
Exemple :
- tout ce qui concerne les collections seront dans System.Collections .
- tout ce qui concerne les accès au disque se trouve dans System.IO.

Maintenant que contiennent réellement les enfants de tes nœuds ?
Car je n'ai jamais vu un Treeview qui contient des namespace : un TreeVieww affiche une collection hiérarchique d'éléments étiquetés, dont chacun est représenté par un objet TreeNode ( cet objet Treenode est appelé un nœud . )

Pour en savoir plus sur les Treeview : https://docs.microsoft.com/fr-fr/dotnet/api/system.windows.forms.treeview?view=netframework-4.8
Et ici aussi : https://plasserre.developpez.com/cours/vb-net/?page=ui-winforms3#LVIII-H-6

Commenter la réponse de vb95
Messages postés
463
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
29 octobre 2019
0
Merci
Merci pour ta réponse
j'ai défini et instancié la classe
chrono

dans un bouton situé dans une autre form je fais appel a un sub
proteine
situé dans la classe
chrono
.

mais le sub
proteine
ne s’exécute pas. pas d'erreur mais rien qui se passe ..

Private Sub CALLE_Click(sender As Object, e As EventArgs) Handles CALLE.Click
            Dim cfb As chrono = New chrono 'définir et instancier
            cfb.proteine()
        End Sub


la class

Namespace Basic
Partial Public Class chrono

Public Sub proteine()
            textsonar.Text = "calories"
            CheckBox1.Checked = True
        End Sub
   
end class
End Namespace


merci du coup de pouce
Commenter la réponse de julia Namor
Messages postés
1960
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 novembre 2019
72
0
Merci
Bonjour
Tout d'abord pour présenter du code prière de suivre les instructions suivantes : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Le code sera instancié et plus agréable à lire et comprendre .

Quel est ton niveau en VB Net ?

Tu appelles par un bouton dans une Form une Sub proteine qui se trouve dans la class chrono ( laquelle classe est une Form je pense )
Cela revient à lire la page 20 ( celle du bouton) d'un livre et vouloir lire aussi la page 50 ( celle de la classe ) par exemple .
Pour y voir clair
La classe chrono est-elle une Form ? je pense que oui vu les 2 contrôles qu'elle contient ..
La class chrono ne contient-elle que cela comme code ?
Si chrono n'est pas une Form dans quelle Form sont les 2 contrôles textsonar et checkBox1?
Que contient ton Treeview et à quoi sert le class chrono ?

Ps : tu peux supprimer les NameSpace si tu veux .

Ici un cours complet sur VB Net : https://plasserre.developpez.com/cours/vb-net/



Commenter la réponse de vb95
Messages postés
13934
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 novembre 2019
316
0
Merci
Bonjour à tous les 2.

Je suppose que cette méthode est celle qui est abonnée au click de ton treeview
         Private Sub CALLE_Click(sender As Object, e As EventArgs) Handles CALLE.Click
            Dim cfb As chrono = New chrono 'définir et instancier
            cfb.proteine()
        End Sub

'comme le dit VB95 c'est quand même plus agréable à lire en couleurs


A l'instar de VB, je pars du principe que chrono est un formulaire.
Je suppose aussi que le reste du code de chrono est dans le NameSpace Basic, sinon ce code ne fera jamais parti de la classe chrono pour le compilateur.

Soit dit en passant, je ne voies aucun interêt à écrire une méthode dans un fichier à part.

Si microsoft le fait c'est pour protéger le code écrit par le designer quand tu places des contrôles sur le formulaire, "des bêtises" que tu pourrais y faire.

Revenons à
mais le sub proteine ne s’exécute pas. pas d'erreur mais rien qui se passe
.
Je pense qu'en fait c'est exécuté correctement, et que tu ne voies pas ce qui se passe.

Regardons en détails

         Private Sub CALLE_Click(sender As Object, e As EventArgs) Handles CALLE.Click
            Dim cfb As chrono = New chrono 'ici qui déclares un nouveau formulaire, tu ne fais pas appel à un formulaire du type chrono qui serait déjà instancié.

            cfb.proteine() 'là tu exécutes, la méthode protéine.

                       Public Sub proteine()
                                textsonar.Text = "calories" 'le textbox reçoit soin texte
                                CheckBox1.Checked = True 'le checkbox est coché
                      End Sub
            'et c'est finit.
            'mais à quel moment affiches tu le nouveau formulaire?

        End Sub





Pourrais tu nous expliquer ton besoin, parce que je pense que si tu as cru qu'écrire un bout de code dans un fichier à part avec un NameSpace serait une solution c'est que tu as un besoin particulier.

Commenter la réponse de Whismeril
Messages postés
463
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
29 octobre 2019
0
Merci
bonjour
merci de m'aider , j'ai un niveau tres basique en vbnet. mais j'apprends vite

Tu appelles par un bouton dans une Form une Sub proteine qui se trouve dans la class chrono ( laquelle classe est une Form je pense
oui c'est bien çà

Pour y voir clair
La classe chrono est-elle une Form ? je pense que oui vu les 2 contrôles qu'elle contient


oui absolument

La class chrono ne contient-elle que cela comme code ?

non il ya d'autres codes , mais j'ai juste reproduit un petit exemple pour vous aider à ..m'aider

Si chrono n'est pas une Form dans quelle Form sont les 2 contrôles textsonar et checkBox1?

chrono est bien une form

Que contient ton Treeview et à quoi sert le class chrono ?

le treeview contient plusieurs dossiers et je souhaiterais déclencher des sub et actions entre dossiers

cordialement
Commenter la réponse de julia Namor
Messages postés
13934
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 novembre 2019
316
0
Merci
Ça répond aux questions de VB, mais pas au miennes.
Peut-être n’avais tu pas réactualisé la page avant de poster ton message.
Commenter la réponse de Whismeril
Messages postés
1960
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
6 novembre 2019
72
0
Merci
Bonjour à vous 2
J'en suis arrivé aux mêmes conclusions que Whismeril .
Quelques conseils pour julia Namor
- j'ai l'impression que tu mets la charrue avant les bœufs : potasses le cours que je t'ai indiqué pour en comprendre les bases et les assimiler .
- entraines toi à faire des minis projets afin de te faire la main
- ensuite tu pourras viser plus haut et faire des projets beaucoup plus conséquents .

tu dis : "le treeview contient plusieurs dossiers et je souhaiterais déclencher des sub et actions entre dossiers "
Ce ne serait pas un explorateur de fichiers que tu voudrais faire ?
Si c'est autre chose il faudrait que tu nous donnes plus de détails pour pouvoir t'aiguiller et comprendre exactement ton souci et te conseiller sur l'architecture de ton projet .

La sub proteine s’exécute bien mais vu que la Form qui la contient n'est pas à l'écran tu ne vois rien



Commenter la réponse de vb95
Messages postés
463
Date d'inscription
jeudi 27 mars 2014
Statut
Membre
Dernière intervention
29 octobre 2019
0
Merci
Merci les gars .
cette phrase
La sub proteine s’exécute bien mais vu que la Form qui la contient n'est pas à l'écran tu ne vois rien m'interesse beaucoup
et du coup je rebondis sur celle ci de vb95 mais à quel moment affiches tu le nouveau formulaire?
je pense qu'il y a une piste à explorer la dessus.
Commenter la réponse de julia Namor
Messages postés
13934
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
8 novembre 2019
316
0
Merci
Même s'il y a une piste à creuser, à savoir afficher le formulaire, j'ai le sentiment que ça n'est pas vraiment ce qu'il te faut par rapport au besoin réel.

Veux tu expliquer ce besoin parce que
je souhaiterais déclencher des sub et actions entre dossiers
n'est pas franchement explicite.
Tu peux commencer par dire ce qu'est un dossier pour toi.
En français je ne voies pas bien le lien entre chrono (chronomètre? ) et protéine.
Pourtant, je suis persuadé que tu n'as pas appelé ces objets comme cela par hasard.


Commenter la réponse de Whismeril