Skip to content

Instantly share code, notes, and snippets.

@maximilian-krauss
Created January 3, 2012 19:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save maximilian-krauss/1556449 to your computer and use it in GitHub Desktop.
Save maximilian-krauss/1556449 to your computer and use it in GitHub Desktop.
TreeView Select Next/Previous Item
' (c) TommyB http://shotty.devs-on.net
MyBase.KeyPreview = True
' ...
Private Sub Me_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles Me.KeyDown
Dim SelectedNode As TreeNode = NaviTreeView.SelectedNode
If e.Control Then
Select Case e.KeyData
Case Keys.Up Or Keys.Control ' Navigate to previous neighbor
If (SelectedNode IsNot Nothing) AndAlso (SelectedNode.PrevVisibleNode IsNot Nothing) Then
NaviTreeView.SelectedNode = SelectedNode.PrevVisibleNode
End If
e.Handled = True
e.SuppressKeyPress = True
Case Keys.Down Or Keys.Control ' Navigate to next neighbor
If (SelectedNode IsNot Nothing) AndAlso (SelectedNode.NextVisibleNode IsNot Nothing) Then
NaviTreeView.SelectedNode = SelectedNode.NextVisibleNode
End If
e.Handled = True
e.SuppressKeyPress = True
Case Keys.Left Or Keys.Control ' Select parent node and collapse chields
If (SelectedNode IsNot Nothing) AndAlso (SelectedNode.Parent IsNot Nothing) Then
NaviTreeView.SelectedNode = SelectedNode.Parent
NaviTreeView.SelectedNode.Collapse()
End If
If (SelectedNode IsNot Nothing) AndAlso (SelectedNode.Nodes.Count > 0) Then
NaviTreeView.SelectedNode.Collapse()
End If
e.Handled = True
e.SuppressKeyPress = True
Case Keys.Right Or Keys.Control ' Expand selected node and select first chield
If (SelectedNode IsNot Nothing) AndAlso (SelectedNode.Nodes.Count > 0) Then
SelectedNode.Expand()
NaviTreeView.SelectedNode = SelectedNode.Nodes(0)
End If
e.Handled = True
e.SuppressKeyPress = True
End Select
End If
End Sub
Private Sub Me_KeyUp(ByVal sender As Object, ByVal e As KeyEventArgs) Handles Me.KeyUp
If e.Control Then
Select Case e.KeyData
Case _
Keys.Up Or Keys.Control, _
Keys.Down Or Keys.Control, _
Keys.Left Or Keys.Control, _
Keys.Right Or Keys.Control
e.Handled = True
e.SuppressKeyPress = True
End Select
End If
End Sub
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment