2

我的问题很简单,但我想不通,所以我需要你的帮助。

问题是我在表单中有一个按钮和一个标签,我只想单击按钮并查看标签从 10 到 0 的倒计时,然后表单关闭,那么简单,有人可以帮我解决这个问题吗?

顺便说一句,我真正的应用程序是一种从我的网络摄像头实时显示视频的表单,想法是单击按钮,查看倒计时,当它完成时,应用程序将当前帧保存为图像。

谢谢指教!

4

3 回答 3

5

听起来您可能只需要三件事:

  • 类中的计数器作为实例变量
  • 计时器(System.Windows.Forms.TimerDispatcherTimer取决于您使用的 UI 框架)
  • 一种处理定时器的方法Tick,它会递减计数器、更新 UI 并停止定时器 + 如果计数器达到 0,则拍摄快照

您可以在没有任何其他线程的情况下完成所有这些操作。

于 2012-07-27T06:48:16.720 回答
2

使用 WindowsFormsApplication 你可以这样做:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        timer1.Enabled = false; // Wait for start
        timer1.Interval = 1000; // Second
        i = 10; // Set CountDown Maximum
        label1.Text = "CountDown: " + i; // Show
        button1.Text = "Start";
    }

    public int i;

    private void button1_Click(object sender, EventArgs e)
    {
        // Switch Timer On/Off
        if (timer1.Enabled == true)
        { timer1.Enabled = false; button1.Text = "Start"; }
        else if (timer1.Enabled == false)
        { timer1.Enabled = true; button1.Text = "Stop"; }
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        if (i > 0)
        {
            i = i - 1;
            label1.Text = "CountDown: " + i;
        }
        else 
        { timer1.Enabled = false; button1.Text = "Start"; }
    }
}

你只需要一个标签、一个按钮和一个计时器。

于 2012-07-27T07:07:08.527 回答
1

使用此代码。放一个计时器、标签和按钮。

public partial class Form1 : Form
{

    public Form1()
    {
        InitializeComponent();
        timer1.Tick += new EventHandler(timer1_Tick);
    }
    private static int i = 10;
    private void button1_Click(object sender, EventArgs e)
    {
        label1.Text = "10";
        timer1.Interval = 1000;
        timer1.Start();
    }

    private void timer1_Tick(object sender, EventArgs e)
    {
        label1.Text = (i--).ToString();
        if (i < 0)
        {
            timer1.Stop();
        }
    }
}
于 2012-07-27T07:06:10.463 回答