Entwickler-Ecke
WinForms - TreeView neues Nodes
pupsbär - So 10.06.12 12:01
Titel: TreeView neues Nodes
Hallo,
ich habe ein kleines Problem.
Ich möchte einer TreeView ein neues Nodes hinzufügen. Das funktioniert auch alles.
Aber ich möchte das wenn es ein neuer Knoten ist das dieser gleich auf geht und
dsa man den Namen sofort ändern kann.
Nacheinander klappt das alles wunder bar aber.
Hier mal ein kleies Testprogramm
C#-Quelltext
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:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { try { TreeNode node = treeView1.SelectedNode; node.Nodes.Add("New node below selected node"); } catch (Exception) { }
}
private void button2_Click(object sender, EventArgs e) { treeView1.ExpandAll(); }
private void button3_Click(object sender, EventArgs e) { treeView1.CollapseAll(); }
private void button4_Click(object sender, EventArgs e) { treeView1.SelectedNode.Text = ""; treeView1.LabelEdit = true; treeView1.SelectedNode.BeginEdit(); }
private void button5_Click(object sender, EventArgs e) { treeView1.Nodes.Remove(treeView1.SelectedNode); }
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e) { label2.Text = treeView1.SelectedNode.Text; }
} } |
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
Christian S. - So 10.06.12 12:12
Hallo!
Wenn Du der Add-Methode nicht einen String übergibst, sondern einen vorher erstellten TreeNode, dann kannst Du für diesen TreeNode die BeginEdit-Methode aufrufen.
Grüße,
Christian
pupsbär - So 10.06.12 19:28
Erst mal danke für deine schnelle Antwort.
Wenn ich das so mache wie du schreibst dann kann ich aber nicht die Nodes zur Laufzeit ändern.
Ich hätte evtl. schreiben sollen das es so sein soll das der Benutzer auf in der TreeView nur einen
Startpunkt bekommt und dann per rechts klick weite Punkte hinzufügen kann.
Darum muss ich einen Punkt erstell und dann gleich ändern.
Grüße
Michael
Christian S. - So 10.06.12 21:40
Das machst Du genau so, wie ich es geschrieben habe :nixweiss:
Einen Node erstellst Du per
C#-Quelltext
1:
| var newNode = new TreeNode("Ein neuer Knoten"); |
pupsbär - So 24.06.12 17:38
Danke
Ich habe es geschafft.
Quelltext
1: 2: 3:
| treeView1.SelectedNode = newNode; treeView1.LabelEdit = true; treeView1.SelectedNode.BeginEdit(); |
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!