Frage

Ich habe eine ToolStripComboBox in einem Toolstrip, und wenn ich TAB-Taste in ihr drücken, gibt es den Fokus auf die nächste Toolstrip-Taste. Ich würde dieses Verhalten mag und den Fokus stattdessen auf eine richtextbox auf meiner Form geben ändern.

Das Problem ist, dass ToolStripComboBox nicht PreviewKeyDown Ereignis hat. Und PreviewKeyDown der Hosting-Toolstrip-Toolbar wird nicht aufgerufen, wenn Tab-Taste in der Combo gedrückt wird (nur wenn sie gedrückt und einige Toolstripbutton fokussiert).

TabStop der Toolstrip Symbolleiste falsch ist.

Irgendwelche Ideen?

War es hilfreich?

Lösung

Sie können dies fangen auf Formularebene, bevor der Toolstrip-Steuerelement den Schlüssel packt. Überschreiben Sie die ProcessCmdKey () -Methode des Formulars, machen es ähnlich aussehen:

    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);
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top