none
c#,请教,等待15秒后执行,怎么处理 RRS feed

  • 问题

  • 有一个lable控件,显示提示信息。在按钮的单击事件中产生,一开始它是隐藏的,然后显示,最后消失。


    if(this.to_user.Text.Replace(" ","")=="")
    {
    this.out_info.Visible=true;

    --在这里等待10秒后,让他消失(这里怎么写代码?)

    this.out_info.VIsible=false;
    return;
    }

    2009年7月25日 9:29

答案

  • private void btnStart_Click(object sender, EventArgs e)
    {
        // 这里使用 BackgroundWorker,另外使用 Timer 也可以达到同样的效果
        this.out_info.Visible = true;
        
        using (BackgroundWorker backgroundWorker = new BackgroundWorker())
        {
            backgroundWorker.DoWork += new DoWorkEventHandler(delegate(object o, DoWorkEventArgs workerEventArgs)
            {
                Thread.Sleep(5000);// 暂停5秒
            });
    
            backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(delegate(object o, RunWorkerCompletedEventArgs e)
            {
                this.out_info.VIsible = false;// 5秒后隐藏
            });
    
            backgroundWorker.RunWorkerAsync();
        }
    }

    知识改变命运,奋斗成就人生!
    2009年7月25日 10:35
    版主
  • 你好!
         可以使用记时器来实现!
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            private System.Timers.Timer timer = new System.Timers.Timer(15000);
                  
            public Form1()
            {
    
                InitializeComponent();
                timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
                                       
            }
             
            private void button1_Click(object sender,EventArgs e)
            {
                 this.out_info.Visible=true;
                 timer1.Start();
            private void timer1_Elapsed(object sender, EventArgs e)
            {
                 this.out_info.Visible=false;
                timer1.Stop();
            }
    

    周雪峰
    2009年7月25日 12:01
    版主

全部回复

  • 您好,
    Thread.Sleep(10000);//让线程睡10秒
    2009年7月25日 9:42
  • Thread.Sleep(15000);  //Sleep以毫秒计数,所以是15000
    http://hi.baidu.com/2009ajun
    2009年7月25日 9:45
  • 哈,楼主的标题和代码注释的时间不一样。
    1秒=1000毫秒
    2009年7月25日 9:56
  • 哈,楼主的标题和代码注释的时间不一样。
    1秒=1000毫秒
    是呀,他到底是要15秒、还是要10秒?反正1秒=1000毫秒,楼主自己定吧!
    http://hi.baidu.com/2009ajun
    2009年7月25日 10:06
  • Thread.Sleep(10000);//这句测试了,不行,控件一直都没有显示出来,各位
    2009年7月25日 10:11
  • private void btnStart_Click(object sender, EventArgs e)
    {
        // 这里使用 BackgroundWorker,另外使用 Timer 也可以达到同样的效果
        this.out_info.Visible = true;
        
        using (BackgroundWorker backgroundWorker = new BackgroundWorker())
        {
            backgroundWorker.DoWork += new DoWorkEventHandler(delegate(object o, DoWorkEventArgs workerEventArgs)
            {
                Thread.Sleep(5000);// 暂停5秒
            });
    
            backgroundWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(delegate(object o, RunWorkerCompletedEventArgs e)
            {
                this.out_info.VIsible = false;// 5秒后隐藏
            });
    
            backgroundWorker.RunWorkerAsync();
        }
    }

    知识改变命运,奋斗成就人生!
    2009年7月25日 10:35
    版主
  • Thread.Sleep(10000);//这句测试了,不行,控件一直都没有显示出来,各位

    不一定非要给“鱼”吧?善于学习及掌握解决问题的方法,比拿到手的“鱼”更重要,O(∩_∩)O~
    http://hi.baidu.com/2009ajun
    2009年7月25日 10:57
  • 你好!
         可以使用记时器来实现!
    namespace WindowsApplication1
    {
        public partial class Form1 : Form
        {
            private System.Timers.Timer timer = new System.Timers.Timer(15000);
                  
            public Form1()
            {
    
                InitializeComponent();
                timer1.Elapsed += new System.Timers.ElapsedEventHandler(timer1_Elapsed);
                                       
            }
             
            private void button1_Click(object sender,EventArgs e)
            {
                 this.out_info.Visible=true;
                 timer1.Start();
            private void timer1_Elapsed(object sender, EventArgs e)
            {
                 this.out_info.Visible=false;
                timer1.Stop();
            }
    

    周雪峰
    2009年7月25日 12:01
    版主
  • 楼主,您好。抱歉,没看清要求。如上两位版主所示!
    2009年7月25日 14:17
  • 呵呵,谢谢各位,最后用了javascript来解决这个延时操作。

    2009年7月29日 4:07
  • 哈,搂主,下回最好说明是webform还是winform。
    要不就把webform问题直接发到asp.net论坛,免得有歧义。
    2009年7月29日 4:20
  • 晕。。。原来是asp.net程序。。。
    2012年8月8日 1:50