bool HandleNavKeys (Keys key_data)
{
if (Items.Count == 0 || !item_control.Visible)
return false;
if (FocusedItem == null)
SetFocusedItem (0);
switch (key_data) {
case Keys.End:
SelectIndex (Items.Count - 1);
break;
case Keys.Home:
SelectIndex (0);
break;
case Keys.Left:
case Keys.Right:
case Keys.Up:
case Keys.Down:
case Keys.PageUp:
case Keys.PageDown:
SelectIndex (GetAdjustedIndex (key_data));
break;
case Keys.Space:
SelectIndex (focused_item_index);
ToggleItemsCheckState ();
break;
case Keys.Enter:
if (selected_indices.Count > 0)
OnItemActivate (EventArgs.Empty);
break;
default:
return false;
}
return true;
}