C # WinForms - TreeView, Context Menu
-
05-07-2019 - |
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.
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.