Question

J'ai un ToolStripComboBox dans un ToolStrip, et quand j'appuyez sur la touche TAB en elle, il donne le focus au prochain bouton toolstrip. Je voudrais changer ce comportement et donner le focus à un richtextbox sur ma forme à la place.

Le problème est que ToolStripComboBox n'a pas l'événement PreviewKeyDown. Et PreviewKeyDown de la barre d'outils ToolStrip d'hébergement n'est pas appelée lorsque la touche de tabulation est enfoncé dans le combo (juste lorsqu'il est pressé et certains ToolStripButton se concentre).

ArrêtTabulation de la barre d'outils toolstrip est fausse.

Toutes les idées?

Était-ce utile?

La solution

Vous pouvez attraper ce au niveau de la forme, avant que le contrôle ToolStrip saisit la clé. méthode Remplacer ProcessCmdKey () de la forme, font ressembler à ceci:

    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);
    }
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top