ajouter des nœuds enfants dans l'arborescence
Je suis nouveau en C# et n'ont aucune expérience de la programmation. Mais j'ai fini un C# bases.
Maintenant, je voudrais concevoir une simple vue de l'arborescence, par l'ajout de nœud parent et de l'enfant nœud.
Je voudrais ajouter un deuxième enfant pour le Deuxième noeud, je suis coincé ici et ne sais pas quelle est la prochaine.
Des idées?
Voici le code:
private void addParentNode_Click(object sender, EventArgs e)
{
string yourParentNode;
yourParentNode = textBox1.Text.Trim();
treeView2.Nodes.Add(yourParentNode);
}
private void addChildNode_Click(object sender, EventArgs e)
{
string yourChildNode;
yourChildNode = textBox1.Text.Trim();
treeView2.Nodes[0].Nodes.Add(yourChildNode);
}
Désolé je n'ai pas été clair, je ne suis pas sûr si j'ai vraiment besoin de celui-ci ici:
//treeView1.BeginUpdate();
//treeView1.Nodes.Clear();
Ce que j'essaie de faire, c'est d'ajouter des Nœuds Parents et de l'enfant nœud. Dans mon code, je peux ajouter plusieurs Nœuds Parents, mais si je veux ajouter un nœud enfant, il ne s'ajouter, dans le premier nœud parent.
Je veux que si j'ajoute un nœud enfant, je veux l'ajouter à la deuxième parent ou d'un troisième parent.
Dans mon code j'utilise seulement un treeview ici, dont les noms treeview2
Voici la capture d'écran
c'est la façon dont la version définitive de mon code ressemble à ceci:
Avant j'ai mis le reste, j'obtiens une erreur si je ne sélectionnez rien. Alors j'en ai fait de cette façon que si rien n'est sélectionné, il va ajouter le "nœud enfant de" les "de nœud par défaut" ou (parent1 nœud). Il semble que cela fonctionne bien. Merci les gars;-)
//This is for adding a parent node
private void addParentNode_Click(object sender, EventArgs e)
{
treeView2.BeginUpdate();
string yourParentNode;
yourParentNode = textBox1.Text.Trim();
treeView2.Nodes.Add(yourParentNode);
treeView2.EndUpdate();
}
//This is for adding child node
private void addChildNode_Click(object sender, EventArgs e)
{
if (treeView2.SelectedNode != null)
{
string yourChildNode;
yourChildNode = textBox1.Text.Trim();
treeView2.SelectedNode.Nodes.Add(yourChildNode);
treeView2.ExpandAll();
}
//This is for adding the child node to the default node(parent 1 node)
else
{
string yourChildNode;
yourChildNode = textBox1.Text.Trim();
treeView2.Nodes[0].Nodes.Add(yourChildNode);
}
Question supplémentaire: est-il d'autres moyens sur la façon dont le code est-il mieux? Parce qu'ici, je déclare la chaîne "yourChildNode" deux fois. L'un dans le si et les autres l'un dans l'autre, il y a aucune simplification?
source d'informationauteur tintincutes
Vous devez vous connecter pour publier un commentaire.
C'est pas méchant, mais j'ai oublié de vous appeler
treeView2.EndUpdate()
dans votreaddParentNode_Click()
méthode.Vous pouvez également appeler
treeView2.ExpandAll()
à la fin de votreaddChildNode_Click()
méthode pour voir votre enfant nœud directement.Je ne sais pas si c'était une erreur ou pas mais il y avait 2 TreeViews. Je l'ai changé pour seulement 1 TreeView...
EDIT: Réponse à la question supplémentaire:
Vous pouvez déclarer la variable contenant le nœud enfant nom en dehors de la clause if:
Note: voir http://www.yoda.arachsys.com/csharp/csharp2/nullable.html pour plus d'informations sur l' ?? de l'opérateur.
Peut-je ajouter à Stormenet exemple, certains KISS (Keep It Simple & Stupide):
Si vous avez déjà un treeView ou tout simplement créé une instance de celui-ci:
Nous allons remplir avec des données - Ex. L'un des parents de deux enfants :
Un Autre Ex. deux parents d'abord avoir deux enfant deuxième enfant:
Prendre si plus de sous à l'enfant de l'enfant 2:
Comme vous le voyez, vous pouvez avoir autant d'enfant et de parent que vous voulez et ceux-ci peuvent avoir des sous de l'enfant de l'enfant et ainsi de suite....
Espère que je l'aide!
Exemple de l'ajout de nœuds enfants:
On dirait que vous êtes seulement en ajoutant des enfants pour le premier parent
treeView2.Nodes[0].Nodes.Add(yourChildNode)
Selon la façon dont vous voulez qu'il se comporte, vous avez besoin d'être explicite sur le nœud parent vous souhaitez ajouter de l'enfant.
Par Exemple, à partir de votre capture d'écran, si vous voulez ajouter de l'enfant à la deuxième nœud que vous auriez besoin:
treeView2.Nodes[1].Nodes.Add(yourChildNode)
Si vous souhaitez ajouter les enfants du nœud sélectionné, obtenir le
TreeView.SelectedNode
et ajoutez les enfants.Essayer TreeView pour avoir une idée de la façon dont la classe fonctionne. Malheureusement, la documentation msdn est jolie lumière sur les exemples de code...
Je suis absent tout un tas de contrôles de sécurité ici!
Quelque chose comme (non testé):
J'avais besoin de faire quelque chose de similaire et suis tombé sur les mêmes questions. J'ai utilisé le AfterSelect événement pour s'assurer que je n'étais pas sélectionné précédemment nœud.
C'est en fait très facile à référencer le bon nœud de recevoir le nouveau nœud enfant.
Vous pouvez faire comme suit pour Remplir treeView avec le parent et l'enfant nœud. Et aussi avec l'affichage et la valeur des membres de nœuds parents et enfants:
Gars utiliser ce code pour ajouter des nœuds et childnodes pour TreeView à partir de code C#.
*
KISS (Keep It Simple & Stupide :)*
protected void Button1_Click(object sender, EventArgs e)
{
}