2010-05-25 3 views
0

У меня есть ToolStripComboBox в ToolStrip, и когда я нажимаю клавишу TAB, он дает фокус следующей кнопке инструментальной панели. Я бы хотел изменить это поведение и сосредоточиться на richtextbox на моей форме.Ручка вкладки в ToolStripComboBox

Проблема в том, что ToolStripComboBox не имеет события PreviewKeyDown. И PreviewKeyDown из панели инструментов ToolStrip для хостинга не вызывается, когда клавиша табуляции нажата в комбо (только когда нажата, а какая-то фокусировочная кнопка сфокусирована).

TabStop панели инструментов панели инструментов является ложным.

Любые идеи?

ответ

1

Вы можете поймать это на уровне формы, прежде чем элемент управления ToolStrip захватит ключ. Переопределите метод ProcessCmdKey() формы, сделайте его похожим на это:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { 
     if (keyData == Keys.Tab && this.ActiveControl == toolStripComboBox1.Control) { 
      richTextBox1.Focus(); 
      return true; 
     } 
     return base.ProcessCmdKey(ref msg, keyData); 
    }