Обрабатывать клавишу табуляции в ToolStripComboBox - PullRequest
0 голосов
/ 25 мая 2010

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

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

Значение TabStop на панели инструментов панели инструментов равно false.

Есть идеи?

1 Ответ

1 голос
/ 25 мая 2010

Вы можете поймать это на уровне формы, прежде чем элемент управления 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);
    }
...