J'ai un System.Windows.Forms.TreeView
. L'utilisateur peut naviguer avec la souris ou le clavier. J'ai des gestionnaires d'événements pour les deux. L'événement de clic de souris fonctionne bien, mais j'ai un problème en ce que le KeyEventArg
n'a aucune connaissance des noeuds dans l'arbre (comme le fait TreeNodeMouseClickEventArgs
). Alors, comment le code sait-il où se trouve l'utilisateur dans TreeView lorsque vous utilisez les touches haut et bas?Comment déterminer un nœud sur TreeView sur l'événement Mouse and Key
MyView.Designer.cs
this.trvApproval.NodeMouseClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.trvApproval_NodeMouseClick);
this.trvApproval.KeyUp += new System.Windows.Forms.KeyEventHandler(this.trvApproval_KeyUp);
MyView.cs
private void trvApproval_NodeMouseClick(object sender, System.Windows.Forms.TreeNodeMouseClickEventArgs eventArgs)
{
this.trvApproval.SelectedNode = eventArgs.Node;
}
private void trvApproval_KeyUp(object sender, System.Windows.Forms.KeyEventArgs eventArgs)
{
// No knowledge of tree in KeyEventArgs
if (eventArgs.KeyValue == Convert.ToChar(Keys.Down))
{
System.Diagnostics.Trace.WriteLine("trvApproval_KeyPress Down: " + eventArgs.KeyValue);
}
else if (eventArgs.KeyValue == Convert.ToChar(Keys.Up))
{
System.Diagnostics.Trace.WriteLine("trvApproval_KeyPress Up: " + eventArgs.KeyValue);
}
}
Oic .. comment ajouter le gestionnaire d'événements? 'this.trvApproval.AfterSelect + =?' –
Oui, c'est comme les autres gestionnaires d'événements. Ou utilisez le concepteur. –
Je demande ce qui compléterait la déclaration dans mon commentaire précédent. –