Treenode umbennen

Trivalik

Mitglied
Gibt eine Möglichkeit ein TreeNode zu sagen das es umbenannt werden will also Rechteck mit Cursor drin! so als ob man mit F2 etwas umbennenen will.
 
Code:
private void tvwProfil_MouseDown(object sender, MouseEventArgs e) {
	Point p = new Point(e.X,e.Y);

	if ( e.Button == MouseButtons.Right ){
		TreeNode node = tvwProfil.GetNodeAt(p);
		// Jetzt kannst Du es verändern // ;)
}

MfG cosmo
 
Wie wärs wennst

// Jetzt kannst Du es verändern // ;)

mit

node.Text = "mein Text";

ersetzt? Is doch wirklich net so schwierig, sich mal die Methoden von einem Objekt anzugucken ...
 
Ja, das ist mir auch klar, Nur hätte ich es gern so das das Treenode umbenannt wird. Ein Funktion so als ob man im Explorer auf die Datei klickt und F2 drückt. Das hätte ich auch gern, nur dies über Kontextmenü.
 
Setz das Property LabelEdit der TreeView auf True.

Dann folgendes:

Global deklarieren:
Code:
private TreeNode mySelectedNode = null;

Dann noch ein MouseDown-Event:
Code:
private void treeView1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{
	mySelectedNode = treeView1.GetNodeAt(e.X, e.Y);
}

Dann noch die (in meinem Fall ein Button-Click), das musst halt dann auf ein Context-Menü legen, was net das Problem sein sollte:
Code:
private void button1_Click(object sender, System.EventArgs e)
{

	if (mySelectedNode != null && mySelectedNode.Parent != null)
	{
		treeView1.SelectedNode = mySelectedNode;
		treeView1.LabelEdit = true;
		if(!mySelectedNode.IsEditing)
		{
			mySelectedNode.BeginEdit();
		}
	}
	else
	{
		MessageBox.Show("No tree node selected or selected node is a root node.\n" + 
			"Editing of root nodes is not allowed.", "Invalid selection");
	}
		
}
 
Zurück