如何在使用计时器控制时将小时文本更改为分钟
本文关键字:文本 小时 分钟 控制 计时器 | 更新日期: 2023-09-27 18:27:06
我使用timer control
显示考试剩余时间。我从数据库中访问时间(例如30分钟、1小时、2小时)。CCD_ 2显示在一个标签中,而CCD_。在30分钟内,我可以将其显示为30 min
,并在60秒后递减,但如何在1小时和2小时内进行?我应该在数据库中存储1小时和2小时的值,以及当时间减少到分钟和time left = 0
时,如何将小时更改为分钟。我如何发送它来完成按钮点击,目前我正在使用下面显示的代码
public partial class MarksExamStart : Form
{
int tik = 0;
public MarksExamStart(string MarksSelected,string DurationID)
{
InitializeComponent();
label1.Text = conf[2];//showing 30/1/2 in label1
label2.Text = conf[3];//showing min/hr in label2
timer1.Interval = 1000;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (sender == timer1)
{
tik++;
if (tik == 60)
{
label1.Text = (Convert.ToInt16(label1.Text) - 1).ToString();//decrementing time here
tik = 0;
}
}
}
}
如果希望时间在一分钟内只勾选一次,则应将间隔设置为60 * 1000
。
如果您想显示测试的剩余时间,您可能不想使用简单的整数,而希望使用TimeSpan
。在这里你可以阅读它,并看到如何显示它的例子
public partial class MarksExamStart : Form
{
int tik = 0;
TimeSpan examTime;
public MarksExamStart(string MarksSelected,string DurationID)
{
InitializeComponent();
examTime = TimeSpan.FromMinutes(conf[3]); // If that's not double you'll need to parse it and make sure it's in the right format
label1.Text = conf[2];//showing 30/1/2 in label1
label2.Text = conf[3];//showing min/hr in label2
timer1.Interval = 60 * 1000;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
if (sender == timer1)
{
if(examTime.TotalMinutes > 1)
{
examTime = examTime.Subtract(TimeSpan.FromMinutes(1));
label1.Text = examTime.ToString();
}
else
{
timer.Stop();
// Show the time ends message
}
}
}
}