使标签显示3秒钟,然后再次消失

问题描述 投票:0回答:5

我怎么能有一个标签说:“注册表更新正确”然后让它在大约2秒后消失?

我猜测通过修改.Visible属性,但我无法弄明白。

c# winforms
5个回答
3
投票

当您设置标签时,您可以制作一个计时器,在2或3秒后超时,调用函数来隐藏您的标签。


4
投票

使用Timer类,但是将它jazz up以便它可以在触发Tick事件时调用方法。这是通过创建一个继承自Timer类的新类来完成的。下面是具有单个按钮控件(btnCallMetLater)的表单代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace DemoWindowApp
{
    public partial class frmDemo : Form
    {
        public frmDemo()
        {
            InitializeComponent();
        }

        private void btnCallMeLater_Click(object sender, EventArgs e)
        {
            MethodTimer hide = new MethodTimer(hideButton);
            MethodTimer show = new MethodTimer(showButton);

            hide.Interval = 1000;
            show.Interval = 5000;

            hide.Tick += new EventHandler(t_Tick);
            show.Tick += new EventHandler(t_Tick);

            hide.Start(); show.Start();
        }

        private void hideButton()
        {
            this.btnCallMeLater.Visible = false;
        }

        private void showButton()
        {
            this.btnCallMeLater.Visible = true;
        }

        private void t_Tick(object sender, EventArgs e)
        {
            MethodTimer t = (MethodTimer)sender;

            t.Stop();
            t.Method.Invoke();
        }
    }

    internal class MethodTimer:Timer
    {
        public readonly MethodInvoker Method;
        public MethodTimer(MethodInvoker method)
        {
            Method = method;
        }
    }
}

1
投票

创建一个System.Forms.Timer,持续时间为2秒。将事件处理程序加到Tick事件和处理程序中,将标签的visible属性设置为false(并禁用Timer)


1
投票

您需要设置Timer对象并在on timer事件中通过将Visible设置为false来隐藏您的标签。

定时器类:http://msdn.microsoft.com/en-us/library/system.timers.timer(VS.71).aspx


0
投票

好吧,如果你不介意用户2秒钟不能做任何事情,你可以调用Thread.Sleep(2000)。如果他们只是在等待更新,那就没什么区别了。少了很多代码。

© www.soinside.com 2019 - 2024. All rights reserved.