private void toolStripTextSearch_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode != Keys.Down && e.KeyCode != Keys.Up && e.KeyCode != Keys.Enter) { return; } ToolStrip parent = toolStripTextSearch.GetCurrentParent(); ToolStripItem prev_item = null; ToolStripItem next_item = null; bool at_item = false; foreach (ToolStripItem itm in parent.Items) { if (itm == toolStripTextSearch) { at_item = true; } if (itm as ToolStripMenuItem == null) { continue; } if (!itm.Visible) { continue; } if (!at_item && itm != toolStripTextSearch) { prev_item = itm; } if (at_item) { next_item = itm; break; } } if (e.KeyCode == Keys.Enter && next_item != null) { miItem_OpenURL(next_item, null); } if (e.KeyCode == Keys.Down && next_item != null) { e.SuppressKeyPress = true; e.Handled = true; parent.Focus(); next_item.Select(); } if (e.KeyCode == Keys.Up && prev_item != null) { e.SuppressKeyPress = true; e.Handled = true; parent.Focus(); prev_item.Select(); } }