在ToolStripComboBox中处理Tab键

时间:2010-05-25 13:16:55

标签: .net winforms controls toolstrip toolstripcombobox

我在ToolStrip中有一个ToolStripComboBox,当我按下TAB键时,它会将焦点放在下一个工具条按钮上。我想改变这种行为,并将焦点放在我的表单上的richtextbox上。

问题是ToolStripComboBox没有PreviewKeyDown事件。并且当在组合中按下Tab键时,不会调用托管ToolStrip工具栏的PreviewKeyDown(仅在按下并且某些工具条按钮被聚焦时)。

工具栏工具栏的TabStop为false。

有什么想法吗?

1 个答案:

答案 0 :(得分: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);
    }