Autor Beitrag
pupsbär
Hält's aus hier
Beiträge: 4



BeitragVerfasst: So 10.06.12 12:01 
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

ausblenden volle Höhe 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) { }

        }

        // Alle Knoten öffnen
        private void button2_Click(object sender, EventArgs e)
        {
            treeView1.ExpandAll();            
        }

        // Alle Knoten schließen
        private void button3_Click(object sender, EventArgs e)
        {
            treeView1.CollapseAll();
        }

        // Aktive Node Umbenennen
        private void button4_Click(object sender, EventArgs e)
        {
            treeView1.SelectedNode.Text = "";
            treeView1.LabelEdit = true;
            treeView1.SelectedNode.BeginEdit();
        }

        // Aktive Node Löschen
        private void button5_Click(object sender, EventArgs e)
        {
            treeView1.Nodes.Remove(treeView1.SelectedNode);        
        }

        // Anzeige welcher Node aktiv ist
        private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
        {
            label2.Text = treeView1.SelectedNode.Text;
        }



    }
}


Moderiert von user profile iconChristian S.: Code- durch C#-Tags ersetzt
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: 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

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".

Für diesen Beitrag haben gedankt: pupsbär
pupsbär Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: 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.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: So 10.06.12 21:40 
Das machst Du genau so, wie ich es geschrieben habe :nixweiss:

Einen Node erstellst Du per
ausblenden C#-Quelltext
1:
var newNode = new TreeNode("Ein neuer Knoten");					

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".

Für diesen Beitrag haben gedankt: pupsbär
pupsbär Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: So 24.06.12 17:38 
Danke

Ich habe es geschafft.


ausblenden Quelltext
1:
2:
3:
                treeView1.SelectedNode = newNode;
                treeView1.LabelEdit = true;
                treeView1.SelectedNode.BeginEdit();