winforms - pestañas - como usar tabcontrol c#
¿Cómo evitar la carga de retraso de un UserControl en un TabControl? (3)
Acabo de descubrir que UserControls en un TabControl no se cargará hasta que se seleccione TabPage principal. ¿Hay alguna manera de evitar que se demore la carga? Necesito inicializar UserControls cuando se carga el formulario principal.
El TabControl
no trata sus controles especialmente, de hecho es normal bajo cualquier circunstancia que el evento Load
en un UserControl
ocurra inmediatamente antes de que se muestre el control por primera vez. El TabPage
es responsable de mostrar el control, por lo tanto, solo se ''cargará'' cuando se seleccione por primera vez.
Para superar este comportamiento (perfectamente normal) de Windows Forms, podría mover su código de inicialización a un método diferente y llamarlo cuando se cargue el Form
, o simplemente podría colocar su código de inicialización en el constructor del UserControl
. De cualquier manera, puede realizar su inicialización de inmediato.
Solo estaba buscando cómo lograr este comportamiento predeterminado que describes. Una aplicación que soporto no estaba retrasando la carga de las pestañas. Resulta que las pestañas se estaban inicializando en el evento de carga en lugar del constructor.
Por lo tanto, si agrega las pestañas a tabcontrol en el evento de carga de formulario, todos los controles en pestañas dispararán sus eventos de carga como parte de la llamada TabPages.AddRange
Puede invocar el método SelectTab () de Tabcontrol para las pestañas en el controlador de eventos Load de su Formulario.