Pergunta

Suponha que eu estou usando um menu de contexto para adicionar nós filho a um controle treeview.

(1) Estou botão direito do mouse no nó

(2) menu de contexto pop-up

(3), então eu clique em "Adicionar" item de menu

(4) um dialogBox abre

(5) de entrada I o nome em que DialogBox e pressione OK

é criado (6) um novo nó.

Como posso obter a referência do nó atual quando estou clicando no item de menu de contexto?

Eu preciso deste coz o objeto pai é armazenada na propriedade Tag do nó atual.

Foi útil?

Solução

Se você lidar com TreeNodeMouseClick , então o seu TreeNodeMouseClickEventHandler será passado um argumento TreeNodeMouseClickEventArgs.

TreeNodeMouseClickEventArgs.Node será a referência TreeNode quiser. Veja a TreeNodeMouseClick docs para um exemplo semelhante a:

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

}

Se você precisar, você pode armazenar uma referência em uma variável de membro para que outro método pode acessá-lo.

Outras dicas

Você pode obter a posição do mouse a partir

System.Windows.Forms.Cursor.Position

Salvar este antes de mostrar o menu de contexto.

Em seguida, use o método no Treeview contendo seus artigos

GetChildAtPoint(Point)

e adicione uma criança abaixo disso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top