我的问题很简单,但我想不通,所以我需要你的帮助。
问题是我在表单中有一个按钮和一个标签,我只想单击按钮并查看标签从 10 到 0 的倒计时,然后表单关闭,那么简单,有人可以帮我解决这个问题吗?
顺便说一句,我真正的应用程序是一种从我的网络摄像头实时显示视频的表单,想法是单击按钮,查看倒计时,当它完成时,应用程序将当前帧保存为图像。
谢谢指教!
我的问题很简单,但我想不通,所以我需要你的帮助。
问题是我在表单中有一个按钮和一个标签,我只想单击按钮并查看标签从 10 到 0 的倒计时,然后表单关闭,那么简单,有人可以帮我解决这个问题吗?
顺便说一句,我真正的应用程序是一种从我的网络摄像头实时显示视频的表单,想法是单击按钮,查看倒计时,当它完成时,应用程序将当前帧保存为图像。
谢谢指教!
听起来您可能只需要三件事:
System.Windows.Forms.Timer
或DispatcherTimer
取决于您使用的 UI 框架)Tick
,它会递减计数器、更新 UI 并停止定时器 + 如果计数器达到 0,则拍摄快照您可以在没有任何其他线程的情况下完成所有这些操作。
使用 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"; }
}
}
你只需要一个标签、一个按钮和一个计时器。
使用此代码。放一个计时器、标签和按钮。
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();
}
}
}