Muchas formas de hacerlo. Crear un formulario para cada paso del asistente es posible, pero muy incómodo. Y feo, muchos parpadeos cuando el usuario cambia el paso. Al hacer que cada paso de un UserControl pueda funcionar, simplemente los cambia dentro y fuera de la colección Controls del formulario. O haga que uno de ellos sea visible = verdadero para cada paso. Sin embargo, el diseño de UC tiende a complicarse, debe agregar propiedades públicas para cada elemento de UI.
La manera fácil y RAD es usar un TabControl. Funciona muy bien en el diseñador ya que le permite cambiar las pestañas en el momento del diseño y soltar los controles en cada pestaña. Cambiar los pasos es trivial, simplemente cambie la propiedad SelectedIndex. Lo único que no es trivial es ocultar las pestañas en tiempo de ejecución. Todavía es fácil hacerlo procesando un mensaje de Windows. Agregue una nueva clase a su formulario y pegue el código que se muestra a continuación. Compilar. Coloque el nuevo control desde la parte superior de la caja de herramientas en su formulario.
using System;
using System.Windows.Forms;
class WizardPages : TabControl {
protected override void WndProc(ref Message m) {
// Hide tabs by trapping the TCM_ADJUSTRECT message
if (m.Msg == 0x1328 && !DesignMode) m.Result = (IntPtr)1;
else base.WndProc(ref m);
}
}
Es útil combinar la forma de base (sugerido aquí) + control de ficha personalizada (descrito en otras respuestas). La creación de bases para asistentes es útil especialmente cuando la aplicación tiene más de un asistente. Ayuda a evitar el horror de codificación de copiar y pegar. – miroxlav
Los métodos útiles que normalmente implemento en la clase base son .. 'OnPageEntered',' OnPageExited', 'AllowNext',' AllowBack', etc. – KDecker