Domanda

Supponiamo che io stia usando un menu di scelta rapida per aggiungere nodi figlio a un controllo treeview.

(1) Sto facendo clic con il pulsante destro del mouse sul nodo

(2) menu contestuale pop-up

(3) quindi faccio clic su " Aggiungi " voce di menu

(4) si apre una finestra di dialogo

(5) Inserisco il nome in quel DialogBox e premo OK

(6) Viene creato un nuovo nodo.

Come posso ottenere il riferimento del nodo corrente quando faccio clic sulla voce del menu contestuale?

Ho bisogno di questo perché l'oggetto genitore è archiviato nella proprietà Tag del nodo corrente.

È stato utile?

Soluzione

Se gestisci TreeNodeMouseClick , quindi al tuo TreeNodeMouseClickEventHandler verrà passato un argomento TreeNodeMouseClickEventArgs .

TreeNodeMouseClickEventArgs.Node sarà il riferimento TreeNode che desideri. Vedi il TreeNodeMouseClick documenti per un esempio simile a:

void treeView1_NodeMouseClick(object sender,  
    TreeNodeMouseClickEventArgs e)
{
    TreeNode theTreeNodeIWant = e.Node

}

Se necessario, è possibile memorizzare un riferimento in una variabile membro in modo che un altro metodo possa accedervi.

Altri suggerimenti

È possibile ottenere la posizione del mouse da

System.Windows.Forms.Cursor.Position

Salva questo prima di mostrare il menu contestuale.

Quindi usa il metodo sul Treeview che contiene i tuoi oggetti

GetChildAtPoint(Point)

e aggiungi un figlio al di sotto di questo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top