Efecto en timen c#

Como puedo ponerle efecto a un timer ya que lo tengo en el menu con un label con el usuario que ingreso sesión entonces esas letras le quisiera poner efecto como puedo hacer este es el código del que te hablo: public partial class Form1 : Form
    { 
        int x=0;
        public Form1()
        {
            InitializeComponent();
        }
        private void cerrarSesiónToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Login xformaSesion = new Login();
            xformaSesion.Show();
            this.Close();
        }
        private void salirDelSistemaToolStripMenuItem1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            if (x == 0)
            {
                lblUsuario.ForeColor = Color.Aqua;
                x = 1;
            }
            else
            {
                lblUsuario.ForeColor = Color.Black;
                x = 0;
            }
        }
public partial class Form1 : Form    {         int x=0;        public Form1()        {            InitializeComponent();        }
        private void cerrarSesiónToolStripMenuItem_Click(object sender, EventArgs e)        {            Login xformaSesion = new Login();            xformaSesion.Show();            this.Close();        }
        private void salirDelSistemaToolStripMenuItem1_Click(object sender, EventArgs e)        {            Application.Exit();        }               private void timer1_Tick(object sender, EventArgs e)        {            if (x == 0)            {                lblUsuario.ForeColor = Color.Aqua;                x = 1;            }            else            {                lblUsuario.ForeColor = Color.Black;                x = 0;
            }                    }

1 respuesta

Respuesta
1
Me supongo que con efecto, te refieres a que el timer cada cierta cantidad de tiempo te ejecute alguna operacion cierto pues mira yo lo hago de esta forma
saludos, cualquier duda me avisas saludos
public ServicioIntegracion()
        {
            InitializeComponent();
        }
 //Variable de timer
        private System.Timers.Timer timerProgramaciones = new System.Timers.Timer();
        protected override void OnStart(string[] args)
        {
            //Inicia el servicio
            //Evento que enlaza el timer
            timerProgramaciones.Elapsed += new ElapsedEventHandler(OnElapsedTimerProgramaciones);
            //Setea el intervalo de tiempo mediante el cual cada cierto tiempo se activa el servidor de programación
            //1000 = un segundo
            //60000 = un minuto
            //1800000 = media hora
            //3600000 = una hora
            //86400000 = un día
            timerProgramaciones.Interval = 1800000;
            //Activa el timer, para que se enlaze al evento
            timerProgramaciones.Enabled = true;
        }
        private void OnElapsedTimerProgramaciones(object source, ElapsedEventArgs e)
        {
  //Lo que deseas que realice :)
 }
Más bien es en un label utulizando un timer osea que las letras de ese label aparecen una por una hacerlo algo así como una animación me han comentado que se hace con un substring pero no se como hacerlo del todo
ahhh pues hay muchas formas de hacerlo yo te recomiendo que utilices hilos o timers, con el timer tambien puedes hacerlo utilizando el
  timerProgramaciones.Elapsed += new ElapsedEventHandler(OnElapsedTimerProgramaciones
//1 segundo
TimeSpam t = new TimeSpam(0,0,1,0);
for(int i=0;i<10;i+++)
{
Thread.Sleep(t);
lblTexto.Text = lblTexto.Text +" "+ i.ToString();
}
Con eso cada segundo se irá poniendo en el label el valor de i
Al final nos quedará algo como
0 1 2 3 4 5 6 7 8 9 en el label cada valor se te pondrá cada segundo, es decir al segundo 5 solo tendrás en el label
0 1 2 3 4
Saludos, si no he sido muy claro en mi explicación me avisas para ver si te doy un pequeño ejemplo
Amigo eso solo me tira error el Thread.Sleep(t); y no se si eso de timer programaciones ba ya que allí también me tira error y si les quito esos dos solo me tira números seguidos a la par del label yo en realidad lo que quiero es que el label se haga como una especie de animación apareciendo letra por letra..
Jaja ok veras, esas son variables que yo utilizo para otro programa sino que la idea era esa solo te las puses como ejemplos a que te guíes en eso, la verdad esa cosa no anda compilada así que no te iba a correr, lo puse solo como idea, mira ahí te dejo el código que lo hice ok, este si esta compilado y probado :)
Saludos
using System;
using System.Windows.Forms;
namespace TimersThreads
{
public partial class Form1 : Form
{
Timer timerLabel;
Label lblTimer = new Label();
string palabraRecortar = "Palabra de Prueba";
int indiceRecortar = 0;
public Form1()
{
InitializeComponent();
timerLabel = new Timer();
timerLabel.Interval = new TimeSpan(0, 0, 0, 1, 0).Seconds;
timerLabel.Start();
timerLabel.Tick += new EventHandler(TimerLabel_Tick);
this.Controls.Add(lblTimer);
}
public string ObtenerPalabra()
{
string palabra = lblTimer.Text;
if (indiceRecortar + 1 <= palabraRecortar.Length)
{
palabra = palabra + palabraRecortar.Substring(indiceRecortar, 1);
indiceRecortar++;
}
else
timerLabel.Stop();
return palabra;
}
public void TimerLabel_Tick(object sender, EventArgs eArgs)
{
if (sender == timerLabel)
{
lblTimer.Text = ObtenerPalabra();
}
}
}
}
Amigo te explicare mejor ese código si funciona pero baa muy rapido y no es de esa forma que lo quiero veras yo tengo un menu cuando ingrese mi nombre y contraseña en un label abajo me tira usuario actual osea el usuario que acaba de ingresar y esas letras yo quisiera dale alguna animación como ya te había explicado anteriormente pero no se como es solo se que es usando el substring y ya
timerLabel.Interval = new TimeSpan(0, 0, 0, 1, 0).Seconds;
Con esa linea seteo el tiempo del timer, (días, horas, minutos, segundos y milesegundos)
Si quieres hacer animaciones como que el label se de vueltas, cambien de colores cada letra, que se agrande y se encoja o cosas más raras (algo así como un flash), eso no se puede hacer en windows form normal (tendrías que hacer una animación flash o a su vez un video y esa animación colocarla en el form), o puedes hacer un aplicativo de windows form en wpf y eso solo viene con visual 2008 ( CÓDIGO XAML: WPF (Escritorio y web) Y SILVERLIGTH (solo web)); en código xaml si podrías hacer cosas que podrías hacer en un flash
Lo máximo que podrías hacer en windows forms creo es eso que se vaya poniendo letra por letra regulando el tiempo como el ejemplo, darle colores a cada letra (no he probado si es factible) o a toda la palabra y que esos colores vayan alternando y hacerle un movimiento de derecha a izquierda o izquierda a derecha, así como algo de desplazamiento comienza en la derecha y se va moviendo lentamente hacia la izquierda hasta llegar al tope y quedarse en el lado izquierdo, o ir presentando la palabra por partes
También puedes mostrar un mensajito así como en el messenger diciendo que tal persona acaba de iniciar sección, en tu caso tu usuario le sale un mensaje que se yo por unos 5 seg y que dice que ha iniciado sección
hola m
hola mu
la mun
a mund
mundo
como esos tableros de las estaciones de buses :), en casi todos los efectos que te mencione de un windows form normal utilizas el substring
Saludos, espero te haya aclarado ciertas dudas y te haya sido de ayuda, si necesitas cualquier otra cosa me avisas
ok gracias el efecto esta pero demasiado rapido y ya hice eso  q me dijistes pero me sale igual le puse mas valor en timerLabel.Interval = new TimeSpan(0, 0, 0, 1, 0).Seconds; pero lo mismo y ademas las letras que dice que del usuario actual en con un timer y no se como relacionarlo con el ejemplo que me distes. osea el ejemplo esta pero para un laber cualquiera y no como la forma q yo la quiero que es eso de usuario actual.
Perdón por la demora he estado queriendo duplicarme para poder hacer todo al mismo tiempo jajaja
mira te paso el link con todo el proyecto, le seteo a un label que se encuentre en el formulario y lo voy llenando ok
cualquier otra duda me avisas, bueno lo del timespan si te corría muy rapido solo era por cuestión de las seteadas de tiempos nada más, es que el valor interval te acepta en milesegundos entonces ese valor del timespan le multiplicabas por 1000 y listo pero bueno mejor te paso el proyect0 a que lo veas, si le haces con el timespan le multiplicas por 1000
lo descomprimes con winrar y lo abres con visual 2008 o simplemente te copias el código
saludos y suerte
http://www.megaupload.com/?d=OYYHOX6A

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas