我有一个应用程序,当某个动作发生时,使用Visual studion配置管理器将确切的日期/时间写为 myTime ,您可以在其中添加设置。
这是我的设置: Properties.Settings.Default.voteTime
我希望我的应用程序一开始显示一个标签,显示“X时间到下次投票请求”
在我的背景下,投票必须每12小时完成一次
我希望标签基本上显示这些标签剩下多少时间 小时,从我上面提到的voteTime开始。
我尝试了很多技巧,但我在C#上是一个菜鸟,没有人为我工作,每次标签要么有默认文字,要么空白......
DateTime voteTime = Properties.Settings.Default.voteTime;
DateTime startDate = DateTime.Now;
//Calculate countdown timer.
TimeSpan t = voteTime - startDate;
string countDown = string.Format("{0} Days, {1} Hours, {2} Minutes, {3} Seconds til launch.", t.Days, t.Hours, t.Minutes, t.Seconds);
上面,这就是我尝试的,然后我写了 label1.text = countDown;
提前致谢。
答案 0 :(得分:6)
怎么做:
您可以使用System.Windows.Forms.Timer
课程来继续显示剩余时间。您可以按以下步骤执行此操作:
创建并初始化计时器:
Timer timer1 = new Timer();
创建其tick
事件方法并设置间隔以更新显示时间:
timer1.Tick += timer1_Tick;
timer1.Interval = 1000; //i am setting it for one second
现在启动计时器:
timer1.Enabled = true;
timer1.Start();
创建timer.tick
事件方法并每秒更新标签:
void timer1_Tick(object sender, EventArgs e)
{
TimeSpan TimeRemaining = VoteTime - DateTime.Now;
label1.Text = TimeRemaining.Hours + " : " + TimeRemaining.Minutes + " : " + TimeRemaining.Seconds;
}
完整代码:
这是完整的代码。你可以复制并粘贴它:
using System;
using System.Windows.Forms;
namespace WindowsFormsApplication
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
timer1.Tick += timer1_Tick;
timer1.Interval = 1000;
timer1.Enabled = true;
timer1.Start();
}
Timer timer1 = new Timer();
void timer1_Tick(object sender, EventArgs e)
{
TimeSpan TimeRemaining = VoteTime - DateTime.Now;
label1.Text = TimeRemaining.Hours + " : " + TimeRemaining.Minutes + " : " + TimeRemaining.Seconds;
}
答案 1 :(得分:2)
这是一种使用计时器控件的简单方法,它会每分钟更新标签:
TimeSpan TimeLeft = new TimeSpan();
DateTime voteTime = Properties.Settings.Default.voteTime;
public Form3()
{
InitializeComponent();
TimeLeft = voteTime - DateTime.Now;
label1.Text = TimeLeft.ToString(@"hh\:mm") + " til launch.";
//This value is in milliseconds. Adjust this for a different time
//interval between updates
timer1.Interval = 60000;
timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
TimeLeft = voteTime - DateTime.Now;
label1.Text = TimeLeft.ToString(@"hh\:mm") + " til launch.";
}