protected override void OnKeyDown(KeyEventArgs e)
{
base.OnKeyDown (e);
switch (e.KeyCode)
{
case Keys.Enter: // Enter
case Keys.Space:
{
if (m_tabIndex!=-1)
SelectItem(m_tabIndex);
break;
}
case Keys.Down:
case Keys.Right:
case Keys.Tab:
{
// Move tabindex one step forward.
m_tabIndex++;
if ((m_tabIndex < Items.Count) && (m_tabIndex >0))
{
RemoveFocus();
if (Items[m_tabIndex].state!=MozItemState.Selected)
Items[m_tabIndex].state = MozItemState.Focus;
ScrollControlIntoView(Items[m_tabIndex]);
}
else this.SelectNextControl(this,true,true,true,true);
break;
}
case Keys.Up:
case Keys.Left:
{
// Move tabindex one step backward
m_tabIndex--;
if ((m_tabIndex >= 0) && (m_tabIndex <Items.Count))
{
RemoveFocus();
if (Items[m_tabIndex].state!=MozItemState.Selected)
Items[m_tabIndex].state = MozItemState.Focus;
ScrollControlIntoView(Items[m_tabIndex]);
}
else this.SelectNextControl(this,false,true,true,true);
break;
}
}
}