Domanda

Ho un ToolStripComboBox in un ToolStrip, e quando si preme il tasto TAB in esso, si attiva il pulsante di ToolStrip successivo. Vorrei cambiare questo comportamento e dare attenzione a un RichTextBox sulla mia forma, invece.

Il problema è che ToolStripComboBox non ha evento PreviewKeyDown. E PreviewKeyDown del ospitare ToolStrip barra degli strumenti non viene chiamato quando si preme il tasto tab nel combo (solo quando viene premuto e alcuni toolstripbutton è focalizzata).

TabStop della barra degli strumenti ToolStrip è falsa.

Tutte le idee?

È stato utile?

Soluzione

È possibile prendere questo a livello di modulo, prima che il controllo ToolStrip afferra la chiave. Sovrascrivere il metodo ProcessCmdKey del form (), farlo sembrare simile a questo:

    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);
    }
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top