View Single Post
Old 21-07-2006, 08:59   #2
zebrone
Senior Member
 
L'Avatar di zebrone
 
Iscritto dal: Nov 2001
Cittā: Milano
Messaggi: 2361
Alla fine sono riuscito, posto il codice nel caso servisse a qualcun altro:

Codice:
private void moveUpToolStripMenuItem_Click(object sender, EventArgs e)
{
    if (treeView1.SelectedNode != null)
    {
	//Memorizzo il padre del nodo che sto spostando: 
	//il nodo spostato sarā ancora figlio suo con indice diminuito di 1
	TreeNode parent = treeView1.SelectedNode.Parent;
	//memorizzo la posizione originale del nodo prima dello spostamento
	int originalIndex = treeView1.SelectedNode.Index;
	//memorizzo l'intero ramo da spostare
	TreeNode branch = treeView1.SelectedNode.Clone() as TreeNode;
	//elimino il nodo dalla vecchia posizione
	treeView1.SelectedNode.Remove();
	try
	{
	    if (parent == null) //se non ho parent sono al livello della radice
	    {
		treeView1.Nodes.Insert(--originalIndex, branch);
	    }
	    else //non sono a livello della radice
	    {
		//inserisco un nodo identico nella posizione appena sopra
		parent.Nodes.Insert(--originalIndex, branch);
	    }
	    treeView1.SelectedNode = branch;
	}
	catch (NullReferenceException ex)
	{
	    MessageBox.Show(ex.Message);
	}
    }
}
__________________
La parola d'ordine, tanto per cambiā č sempre la stessa: VIUUULENZA!!! Trattative MAC: Powerbook 12"
PC1: GA-X48-DS4, Q9300, 2x2GB Corsair 8500, 2 Ati 4870 Crossfire, Seagate 1.5TB PC2: M2NPV-VM, 64x2 4800+, 1GB DDR2, Ati 4670, Maxtor 120GB
PC3: GA-7VT600 1394, Barton 2500+@3000+, 2GB DDR400, 6800, Seagate 160GB PHOTO: Canon Digital IXUS 430
zebrone č offline   Rispondi citando il messaggio o parte di esso