Pregunta

Cuando cambio de pestañas con el siguiente código

tabControl1.SelectTab("MyNextTab");

Llama a tabPage_Enter para la pestaña desde la que está cambiando y la pestaña a la que está cambiando. Quiero que se llame para la pestaña a la que está cambiando, pero no la pestaña desde la que está cambiando. ¿Cómo iba a apagar esto? Sé cuándo sucede, así que si hubiera una llamada que pudiera hacer, se desactivaría la llamada al método enter para esa pestaña y podría implementarla.

¿Fue útil?

Solución

Sí, repito si uso un botón para cambiar la pestaña seleccionada. TabControl fuerza el foco sobre sí mismo antes de que cambie SelectedIndex. Esto parece haberse hecho para evitar problemas con el evento Validating. El cambio de foco produce el primer evento Enter, para la pestaña activa, el cambio de pestaña produce el segundo evento Enter.

Sabiendo esto, puede establecer un miembro booleano de ayuda, lo que indica que el primer evento Enter debe ignorarse. Tenga cuidado de verificar que la pestaña actual no sea la que desea seleccionar. En un mundo perfecto, este comportamiento no debería importar. El enfoque realmente se movió a la pestaña activa primero.

Otros consejos

¿Puede verificar el índice de la pestaña activa y la solución alternativa con eso?

Envuelva el código en el evento dentro de una verificación para que solo se procese cuando lo desee.

Si puede escribir código para desactivarlo, puede escribir código para establecer un estado que evite que el código en el evento se ejecute.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top