Soy nuevo en la Creación de Asistentes para la Aplicación de Formularios Windows forms en C# .Net. Así que no tengo ninguna idea en el asistente de creación. Por favor, dame algunas ideas acerca de la creación de Múltiples asistente.

Saludos, ravi

InformationsquelleAutor Ravi | 2010-02-26

3 Comentarios

  1. 131

    Un montón de maneras de hacerlo. Creación de un formulario para cada paso del asistente es posible, pero muy difícil. Y feo, un montón de parpadeo cuando el usuario cambia el paso. Haciendo que cada paso de un control de usuario puede trabajar, usted sólo tiene que cambiar en y fuera de la colección Controls del formulario. O hacer uno de ellos Visible = true para cada paso. La UC diseño tiende a ser complicado, sin embargo, usted tiene que agregar propiedades públicas para cada elemento de interfaz de usuario.

    La fácil y RAD es la utilización de un control TabControl. Funciona muy bien en el diseñador, ya que permite cambiar de pestaña en tiempo de diseño y soltar los controles en cada ficha. La conmutación de los pasos es trivial, basta con cambiar la propiedad SelectedIndex. La única cosa que no trivial es ocultar las pestañas en tiempo de ejecución. Todavía fácil de hacer mediante el procesamiento de un mensaje de Windows. Agregar una nueva clase al formulario y pegar el código que se muestra a continuación. Compilar. Coloque el nuevo control de la parte superior de la caja de herramientas hasta el 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);
      }
    }
    • +51: así que ahora usted puede utilizar un control de ficha, ocultar las pestañas …y cambiar entre las páginas de ficha con la ficha índice …??? Voy a usar esto …mucho más agradable que la gestión de la superposición de paneles.
    • Bonita respuesta Hans! Yo sólo soy courius : ¿esta completamente ocultar las fichas de manera que el usuario no haga clic en, o activarlos hittink tecla TAB o algo?
    • pulsando CTRL+TAB en realidad se mueve a través de las páginas de ficha
    • souloution para la ficha es sólo para poner TabStop a false
    • He probado esta solución, mientras que funciona muy bien para la mayoría. El problema es que no elimina el tabcontrol de la frontera y el marco en tiempo de ejecución. Es posible hacer eso?
  2. 29
    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);
        }        
    
        protected override void OnKeyDown(KeyEventArgs ke)
        {
            //Block Ctrl+Tab and Ctrl+Shift+Tab hotkeys
            if (ke.Control && ke.KeyCode == Keys.Tab) 
                return;
            base.OnKeyDown(ke);
        }
    }
    • Qué otras claves? Avpág y repág? O a la Izquierda y la Derecha teclas de flecha? Que puedo añadir, porque Usted no será capaz de moverse dentro del cuadro de texto que es hijo de ese control.
    • Si usted maneja Ctrl+Tab y Ctrl+Shift+Tab no se olvide también de sus equivalentes Ctrl+PgUp y Ctrl+PgDn. Estos últimos son más dominantes en muchos escenarios donde Ctrl+Tab y Ctrl+Shift+Tab son tomadas por el control interno, por ejemplo, de varias líneas de entrada de la caja.
    • claves restringidas por encima todavía funcionan bien en los controles de niño (sólo he probado eso)
    • Yo no comprobar que, yo he escrito un control simple que no es de extender TabControl. He utilizado este artículo: codeproject.com/Articles/18674/…
  3. 1

    Usted necesita para crear su propia para satisfacer sus propias preferencias. Una sugerencia va a ser para usted para crear una base de formulario denominado como «frmWizard» entonces, el asistente de windows se heredan de él. Usted debe poner objetos comunes o el asistente para objetos de la clase base y modificar \ override ellos en la clase derivada, si es necesario.

    • Es útil combinar forma de base (se sugiere aquí) + ficha personalizada de control (que se describen en otras respuestas). La creación de la fundación para los asistentes es útil, especialmente cuando la aplicación tiene más de un asistente. Ayuda a evitar el copiar-pegar de codificación de horror.
    • Métodos útiles me suele implementar en la clase base se.. OnPageEntered, OnPageExited, AllowNext, AllowBack, etc.

Dejar respuesta

Please enter your comment!
Please enter your name here