logo
VitNX3 Documentation

# VitNX_TreeView.OnKeyDown Method

Namespace: VitNX.UI.ControlsV1.Controls
Assembly: VitNX3 (in VitNX3.dll)
Raises the KeyDown event.
VB
C#
F#
C++
JScript
Copy

    protected override void OnKeyDown(
       KeyEventArgs e
    )

    This language is not supported or no code example is available.

#### Parameters

e
  KeyEventArgs

A KeyEventArgs that contains the event data.

Source code
VB
C#
F#
C++
JScript
Copy

    protected override void OnKeyDown(KeyEventArgs e)
     {
         base.OnKeyDown(e);

         if (IsDragging)
             return;

         if (Nodes.Count == 0)
             return;

         if (e.KeyCode != Keys.Down && e.KeyCode != Keys.Up && e.KeyCode != Keys.Left && e.KeyCode != Keys.Right)
             return;

         if (_anchoredNodeEnd == null)
         {
             if (Nodes.Count > 0)
                 SelectNode(Nodes[0]);
             return;
         }

         if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Up)
         {
             if (MultiSelect && ModifierKeys == Keys.Shift)
             {
                 if (e.KeyCode == Keys.Up)
                 {
                     if (_anchoredNodeEnd.PrevVisibleNode != null)
                     {
                         SelectAnchoredRange(_anchoredNodeEnd.PrevVisibleNode);
                         EnsureVisible();
                     }
                 }
                 else if (e.KeyCode == Keys.Down)
                 {
                     if (_anchoredNodeEnd.NextVisibleNode != null)
                     {
                         SelectAnchoredRange(_anchoredNodeEnd.NextVisibleNode);
                         EnsureVisible();
                     }
                 }
             }
             else
             {
                 if (e.KeyCode == Keys.Up)
                 {
                     if (_anchoredNodeEnd.PrevVisibleNode != null)
                     {
                         SelectNode(_anchoredNodeEnd.PrevVisibleNode);
                         EnsureVisible();
                     }
                 }
                 else if (e.KeyCode == Keys.Down)
                 {
                     if (_anchoredNodeEnd.NextVisibleNode != null)
                     {
                         SelectNode(_anchoredNodeEnd.NextVisibleNode);
                         EnsureVisible();
                     }
                 }
             }
         }

         if (e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
         {
             if (e.KeyCode == Keys.Left)
             {
                 if (_anchoredNodeEnd.Expanded && _anchoredNodeEnd.Nodes.Count > 0)
                 {
                     _anchoredNodeEnd.Expanded = false;
                 }
                 else
                 {
                     if (_anchoredNodeEnd.ParentNode != null)
                     {
                         SelectNode(_anchoredNodeEnd.ParentNode);
                         EnsureVisible();
                     }
                 }
             }
             else if (e.KeyCode == Keys.Right)
             {
                 if (!_anchoredNodeEnd.Expanded)
                 {
                     _anchoredNodeEnd.Expanded = true;
                 }
                 else
                 {
                     if (_anchoredNodeEnd.Nodes.Count > 0)
                     {
                         SelectNode(_anchoredNodeEnd.Nodes[0]);
                         EnsureVisible();
                     }
                 }
             }
         }
     }

    This language is not supported or no code example is available.

Applies to

#### .NET Framework

Supported in: 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8

#### .NET Core

Supported in: 5.0+, 6.0+
See Also
VitNX_TreeView Class
VitNX.UI.ControlsV1.Controls Namespace