C# 在按下某些键后,如何在树视图中选择同一级别上的上一个/下一个节点?
假设有一个树景:C# 在按下某些键后,如何在树视图中选择同一级别上的上一个/下一个节点?,c#,C#,假设有一个树景: item1 |_item2 | |_item3 | |_item4 |_item5 |_item6 如果用户按CTRL-Up或CTRL-Down,如何使光标停留在级别1上,以便仅在项目2、项目5和项目6之间导航 我思考了这次行动背后的逻辑: if (user presses ctrl down) and (level is 1) and (the next node exists) go to the next node from level 1 如何在C#中实
item1
|_item2
| |_item3
| |_item4
|_item5
|_item6
如果用户按CTRL-Up或CTRL-Down,如何使光标停留在级别1上,以便仅在项目2、项目5和项目6之间导航
我思考了这次行动背后的逻辑:
if (user presses ctrl down) and (level is 1) and (the next node exists)
go to the next node from level 1
如何在C#中实现这一点?谢谢。如果您订阅了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;
}
}
}
void treeView1_KeyDown(对象发送方,KeyEventArgs e){
if(e.Control&&e.KeyCode==Keys.Down){
TreeNode tn=TreeView W1.SelectedNode;
如果(tn!=null){
如果(tn.Parent==null){
if(tn.Index