[ Foro de C# ]

timer.Enabled==false

12-Oct-2013 22:25
Erario Santa Cruz
5 Respuestas


 
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void salirToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("¿Desea salir del programa?", "Menu Principal", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning) == DialogResult.Yes)
            {
                Application.Exit();
            }
        }
 
        private void areaDelTrianguloToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmTriangulo frmt = new frmTriangulo();
            frmt.MdiParent = this;
            if (sender == areaDelTrianguloToolStripMenuItem)
            {
                timer2.Enabled = true;
                if (timer2.Enabled == false)
                {
                    frmt.Show();
                }
            }
 
        }
 
        private void areaDelCirculoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            frmCirculo frmc = new frmCirculo();
            frmc.MdiParent = this;
            frmc.Show();
        }
 
        private void acomodarHorizontalmenteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.LayoutMdi(MdiLayout.TileHorizontal);
        }
 
        private void acomodarVerticalmenteToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.LayoutMdi(MdiLayout.TileVertical);
        }
 
        private void acomodarEnCascadaToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.LayoutMdi(MdiLayout.Cascade);
        }
 
        private void acomodarEnIconoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.LayoutMdi(MdiLayout.ArrangeIcons);
        }
 
        private void toolStripStatusLabel1_Click(object sender, EventArgs e)
        {
 
        }
 
        private void timer1_Tick(object sender, EventArgs e)
        {
            toolStripStatusLabel1.Text = DateTime.Now.ToLongTimeString().ToString();
            toolStripStatusLabel2.Text = DateTime.Now.ToLongDateString().ToString();
        }
 
        public void timer2_Tick(object sender, EventArgs e)
        {
            toolStripProgressBar1.Increment(1);
            toolStripStatusLabel7.Text = "Espere un momento....";
            toolStripProgressBar1.Visible = true;
            if (toolStripProgressBar1.Value == toolStripProgressBar1.Maximum)
            {
                toolStripProgressBar1.Visible = false;
                timer2.Enabled = false;
                toolStripStatusLabel7.Text = "";
            }
        }
    }
}
 



12-Oct-2013 22:27
Erario Santa Cruz

Quiero aclarar que mi intension es que el timer.Enabled==false me muestre el formulario que deseo


12-Oct-2013 22:48
Nacho Cabanes (+31)

No acabo de entender la pregunta. ¿Quieres que se muestre un segundo formulario cuando un temporizador alcance cierto valor?


12-Oct-2013 23:14
Erario Santa Cruz

Si, esa seria mi intension.


12-Oct-2013 23:35
Nacho Cabanes (+31)

Un temporizador se activa cada cierto tiempo, que tú indiques en su propiedad "Interval", en milisegundos. Así, "2000" querría decir que ocurriera al cabo de dos segundos.

Si tu temporizador se llama "timer1", lo activarías con "timer1.Start();" (puede ser a partir de que se cumpla cierta condición, o bien en el constructor del formulario, si quieres que sea a partir de que se lance el programa). El "Start()" es lo mismo que hacer  "timer1.Enabled = true;".

Entonces, en el evento "Tick" detallarías lo que quieres que ocurra cuando pase ese tiempo. Por ejemplo, si quieres que se muestre una ventana de aviso, sería:

 
private void timer1_Tick(object sender, EventArgs e)
{
    MessageBox.Show("Hola");
}
 


Si quieres parar el temporizador, para que sólo ocurra una vez, basta con que añadas "timer.Stop();":

 
private void timer1_Tick(object sender, EventArgs e)
{
    timer1.Stop();
    MessageBox.Show("Hola");
}
 


Si se trata de mostrar un segundo formulario, es muy parecido:

 
private void timer1_Tick(object sender, EventArgs e)
{
    timer1.Stop();
    Form2 ventana = new Form2();
    ventana.ShowDialog();
}
 


13-Oct-2013 00:16
Erario Santa Cruz

Muchas gracias por resolver mi duda, te lo agradezco.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)