Maniglia tasto tab in ToolStripComboBox
-
04-10-2019 - |
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?
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);
}