📅  最后修改于: 2023-12-03 15:37:13.575000             🧑  作者: Mango
在一些情况下,我们需要在一定时间后自动关闭某个表单,一种简单的实现方式是使用定时器(Timer)组件。本文将介绍如何在 C# 中使用定时器组件实现固定时间后关闭表单的功能。
// 假设定时器组件的名字为 timer1
this.timer1.Enabled = false;
private void button1_Click(object sender, EventArgs e)
{
// 假设键入的总时间为 5 秒
int totalTimeSeconds = 5;
this.timer1.Interval = 1000; // 计时器间隔为 1 秒
this.timer1.Tag = totalTimeSeconds; // 将总时间(秒数)存储在 Tag 属性中,方便后面使用
this.timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
int remainTimeSeconds = (int)this.timer1.Tag;
if (remainTimeSeconds > 0)
{
this.timer1.Tag = --remainTimeSeconds;
}
else
{
// 关闭表单
this.Close();
}
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.timer1.Enabled = false;
this.timer1.Interval = 1000;
this.timer1.Tick += timer1_Tick;
}
private void button1_Click(object sender, EventArgs e)
{
int totalTimeSeconds = 5;
this.timer1.Tag = totalTimeSeconds;
this.timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
int remainTimeSeconds = (int)this.timer1.Tag;
if (remainTimeSeconds > 0)
{
this.timer1.Tag = --remainTimeSeconds;
}
else
{
this.Close();
}
}
}
以上就是使用定时器组件实现固定时间后关闭表单的方法。需要注意的是,在计时器未启动或已启动但未到时间结束时,需要对计时器的 Enabled 属性进行合理的设置,以避免重复启动或异常关闭。