Pregunta

Supongamos que estoy usando un menú contextual para agregar nodos secundarios a un control de vista de árbol.

(1) Estoy haciendo clic derecho en el nodo

(2) menú contextual emergente

(3) luego hago clic en " Añadir " elemento del menú

(4) se abre un cuadro de diálogo

(5) Ingresé el nombre en ese DialogBox y presioné OK

(6) Se crea un nuevo nodo.

¿Cómo puedo obtener la referencia del nodo actual cuando hago clic en el elemento del menú contextual?

Necesito esto porque el objeto principal se almacena en la propiedad Tag del nodo actual.

¿Fue útil?

Solución

Si maneja TreeNodeMouseClick , luego a su TreeNodeMouseClickEventHandler se le pasará un argumento TreeNodeMouseClickEventArgs .

TreeNodeMouseClickEventArgs.Node será la referencia de TreeNode que desee. Consulte el TreeNodeMouseClick docs para un ejemplo similar a:

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

}

Si lo necesita, puede almacenar una referencia en una variable miembro para que otro método pueda acceder a ella.

Otros consejos

Puede obtener la posición del mouse desde

System.Windows.Forms.Cursor.Position

Guarda esto antes de mostrar el menú contextual.

Luego use el método en la vista de árbol que contiene sus artículos

GetChildAtPoint(Point)

y agrega un niño debajo de eso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top