Pregunta

Tengo un ToolStripComboBox en un ToolStrip, y cuando se presiona tecla TAB en ella, que sitúa el foco en el botón situado junto toolstrip. Me gustaría cambiar este comportamiento y el foco a una RichTextBox en mi formulario en su lugar.

El problema es que ToolStripComboBox no tiene caso PreviewKeyDown. Y PreviewKeyDown de la barra de herramientas ToolStrip de alojamiento no se llama cuando se presiona la tecla Tab en el combo (justo cuando se presiona y algunos ToolStripButton está enfocada).

PuntoDeTabulación de la barra de herramientas toolstrip es falso.

¿Alguna idea?

¿Fue útil?

Solución

Puede capturar esta a nivel del formulario, antes del control ToolStrip agarra la llave. Reemplazar el método del formulario ProcessCmdKey (), hacer que se vea similar a esto:

    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);
    }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top