Created
January 3, 2012 19:20
-
-
Save maximilian-krauss/1556449 to your computer and use it in GitHub Desktop.
TreeView Select Next/Previous Item
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
' (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