none
Formulario Splash RRS feed

  • Pregunta

  • Buenaaas...Estoy haciendo una aplicación en la que tengo que mostrar un formulario splash, tengo este código, pero me saltan errores que no sé cómo solucionarlos. Espero respuestas....Gracias

    public partial class Splash : Form
    
        {
    
            public Splash(int segundos)
    
            {
    
                InitializeComponent();
    
    
    
                timer1.Interval = segundos * 1000;    
    
    
    
               if (!timer1.Enabled)
    
                   timer1.Enabled = true;
    
            }
    
    
    
           private void timer1_Tick(object sender, System.EventArgs e)
    
           {
    
               timer1.Stop();    
    
               this.Close();      
    
           }
    
    
    
    
    El aviso de error dice:  "el nombre timer1 no existe en el contexto actual" ,

    private void RegConsul_Load(object sender, EventArgs e)
            {
                Splash f1 = new Splash();
                f1.ShowDialog(this);     
                f1.Dispose();
            }
    Y en este caso, en el formulario principal el aviso de error dice: "'Consultorio_Odontológico.Splash' no contiene un constructor que tome argumentos '0' " .
    Mi aplicación se llama Consultorio_Odontológico.


    sábado, 26 de septiembre de 2009 0:36

Respuestas

  • hola

    - has agreagado un control Timer a tu formulario ?
     revisa el toolbox y veras alli el control timer que deberias arrastrar a tu formulario, ponle el nombre timer1

    o sino puedes declararlo:

    public partial class Splash : Form
    {
    Timer timer1 = new Timer();
    public Splash(int segundos)
    {
    InitializeComponent();


    timer1.Tick += new EventHandler(TimerEventProcessor);
    timer1.Interval = segundos * 1000;    


      if (!timer1.Enabled)
      timer1.Enabled = true;

    }



       private void timer1_Tick(object sender, System.EventArgs e)

       {
      timer1.Stop();    
      this.Close();      
       }
       
    }  

    como veras en negrita puse la declaracion del objeto timer, y la asignacion del handler del evento



    por el segundo error es correcto que te lo marque ya que has creado un constructor en donde debes especificar los segundo del timer

    este es tu constructor:

    public Splash(int segundos)
    {
    InitializeComponent();

    timer1.Tick += new EventHandler(TimerEventProcessor);
    timer1.Interval = segundos * 1000;    

      if (!timer1.Enabled)
      timer1.Enabled = true;

    }

    como veras marque en negrita que tienes que si o si pasarle un parametro sino no podras compilarlo

    aqui tienes dos formas de resolverlo

    - o creas otro constructor sin parametros
    - o cuando creas el objeto del formulario le asignas los segundos

    Para pasarle los segundos seria de esta forma:

    private void RegConsul_Load(object sender, EventArgs e)
    {
    Splash f1 = new Splash(10);
    f1.ShowDialog(this);     
    f1.Dispose();
    }

    como veras solo te faltaba poner un valor numérico como parámetro al constructor


    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 26 de septiembre de 2009 4:28

Todas las respuestas

  • hola

    - has agreagado un control Timer a tu formulario ?
     revisa el toolbox y veras alli el control timer que deberias arrastrar a tu formulario, ponle el nombre timer1

    o sino puedes declararlo:

    public partial class Splash : Form
    {
    Timer timer1 = new Timer();
    public Splash(int segundos)
    {
    InitializeComponent();


    timer1.Tick += new EventHandler(TimerEventProcessor);
    timer1.Interval = segundos * 1000;    


      if (!timer1.Enabled)
      timer1.Enabled = true;

    }



       private void timer1_Tick(object sender, System.EventArgs e)

       {
      timer1.Stop();    
      this.Close();      
       }
       
    }  

    como veras en negrita puse la declaracion del objeto timer, y la asignacion del handler del evento



    por el segundo error es correcto que te lo marque ya que has creado un constructor en donde debes especificar los segundo del timer

    este es tu constructor:

    public Splash(int segundos)
    {
    InitializeComponent();

    timer1.Tick += new EventHandler(TimerEventProcessor);
    timer1.Interval = segundos * 1000;    

      if (!timer1.Enabled)
      timer1.Enabled = true;

    }

    como veras marque en negrita que tienes que si o si pasarle un parametro sino no podras compilarlo

    aqui tienes dos formas de resolverlo

    - o creas otro constructor sin parametros
    - o cuando creas el objeto del formulario le asignas los segundos

    Para pasarle los segundos seria de esta forma:

    private void RegConsul_Load(object sender, EventArgs e)
    {
    Splash f1 = new Splash(10);
    f1.ShowDialog(this);     
    f1.Dispose();
    }

    como veras solo te faltaba poner un valor numérico como parámetro al constructor


    saludos

    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 26 de septiembre de 2009 4:28
  • :-)
    Hola,

    Acabo de publicar un post en mi blog con un ejemplo. Dale un vistazo en:
    http://geeks.ms/blogs/lfranco/archive/2010/11/26/howto-crear-una-pantalla-de-inicio-splash-screen.aspx

    Saludos,


    No olvides marcar la respuesta como correcta si te ha sido de utilidad :-)

    [MS-MVP-MCTS]

    Follow me on Facebook or Twitter!

    Mi Perfil MVP en: https://mvp.support.microsoft.com/profile/Lluis
    NUG: http://andorradotnet.com
    Web: http://www.ordeeno.com
    Geeks: http://geeks.ms/blogs/lfranco

    viernes, 26 de noviembre de 2010 13:08
    Moderador