2017-02-20 8 views
0

はのは、ツリービューがあります言ってみましょう:特定のキーを押した後、ツリービュー内で同じレベルの前/次のノードを選択する方法は?

item1 
|_item2 
| |_item3 
| |_item4 
|_item5 
|_item6 

ユーザーのみITEM2、item5、およびitem6間を移動するには、レベル1に滞在するカーソルを作成する方法、CTRL UpまたはCTRLダウンを押すと?

私は、この操作の背後にあるロジックについて考えた:

if (user presses ctrl down) and (level is 1) and (the next node exists) 
    go to the next node from level 1 

C#でそれを実装する方法は?ありがとう。

答えて

0

KeyDownイベントを購読している場合は、現在のノードのIndexプロパティを使用できます。

この例では唯一のコントロール下矢印のシナリオを処理します。

void treeView1_KeyDown(object sender, KeyEventArgs e) { 
    if (e.Control && e.KeyCode == Keys.Down) { 
    TreeNode tn = treeView1.SelectedNode; 
    if (tn != null) { 
     if (tn.Parent == null) { 
     if (tn.Index < treeView1.Nodes.Count - 1) { 
      treeView1.SelectedNode = treeView1.Nodes[tn.Index + 1]; 
     } 
     } else { 
     if (tn.Index < tn.Parent.Nodes.Count - 1) { 
      treeView1.SelectedNode = tn.Parent.Nodes[tn.Index + 1]; 
     } 
     } 
    e.Handled = true; 
    } 
    } 
} 
+0

私はそれをテストし、それが働きました。ありがとう。 – FloatingAway

関連する問題