1
나는 System.Windows.Forms.TreeView
이 있습니다. 사용자는 마우스 나 키보드로 탐색 할 수 있습니다. 나는 둘 다에 대한 이벤트 처리기가 있습니다. 마우스 클릭 이벤트가 제대로 작동하지만 KeyEventArg
에는 트리의 노드에 대한 지식이 전혀 없다는 점에서 문제가 있습니다 (TreeNodeMouseClickEventArgs
처럼). 그럼 위와 아래 키를 사용할 때 TreeView에서 사용자가있는 위치를 코드가 어떻게 알 수 있습니까? 당신은 키보드 나 마우스 이벤트를 처리 할 필요가 없습니다마우스 및 키 이벤트 TreeView에서 노드를 확인하는 방법
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 .. 이벤트 처리기를 추가하는 방법은 무엇입니까? 'this.trvApproval.AfterSelect + =? ' –
예, 다른 이벤트 핸들러와 같습니다. 또는 디자이너를 사용하십시오. –
나는 이전 코멘트에서 성명서를 완성 할 것이 무엇인지 묻습니다. –