回答
现在加入一个计时器,你的形式和时间间隔设置为1000毫秒..
声明具有当前时刻计时器上的每一个滴答更新毫秒一个无形的文本框..
上文本框的TextBox.TextChanged事件从那里添加一个功能转换的毫秒时间...
下一个方法是添加一个定时器和间隔设置为1毫秒...
更新时间..
下一个方法是添加一个BackgroundWorker并使用它作为一个定时器来更新时间...
如果您发现任何有用的上述方法...评论,我会后的代码! :)
这个答案需要一些工作,思维过程是所有的地方,代码将使其更好。 –
@Ramhound的【答案在这里(http://stackoverflow.com/a/10541756/1118933)告诉一切,但如果线程与定时更换,这将更好地工作。 – Writwick
使用Timer。在Timer.Tick处理程序中,使用基于DateTime.Now的简单if/else语句修改标签的Text属性。
int hour = DateTime.Now.Hour;
if (hour >= 10 && hour < 17)
//Open 10:00am through 4:59pm
LabelStatus.Text = "Open";
else
//Closed 5:00pm through 9:59am
LabelStatus.Text = "Closed";
您需要详细了解如何使用此代码。这不符合作者的要求。他希望标志在下午5点开放,而不是下午4:59开放,这是有区别的。 –
下面是使用更新标签的单独线程执行此操作的方法。这样,线程将在后台运行,并不断检查标签是否处于正确的状态。确保的情况下,无论是使用Thread.Abort的()和追赶,我相信总是抛出,或通过添加一个标志作为while循环的条件外,并降低旗关闭你停止线程的形式停止线。
只要没有其他对象访问的标签,不应该有任何需要锁的线程的任何部分。
public delegate void DelLabelText(Label l, string s);
public DelLabelText delLabelText;
public Form1()
{
InitializeComponent();
delLabelText = Label_Text;
// Initialize text
lblOpenStatus.Text = "Closed";
// Create and start thread
Thread threadUpdateLabel = new Thread(UpdateLabel_Threaded);
threadUpdateLabel.Start();
}
// Thread function that constantly checks if the text is correct
public void UpdateLabel_Threaded()
{
while (true)
{
Thread.Sleep(5000);
// 24 hour clock so 17 means 5
if ((DateTime.Now.Hour >= 10 && DateTime.Now.Hour < 17) || (DateTime.Now.Hour == 17 && DateTime.Now.Minute == 0 && DateTime.Now.Second == 0))
{
if (lblOpenStatus.Text.ToLower() == "closed")
{
Label_Text(lblOpenStatus, "Open");
}
}
else
{
if (lblOpenStatus.Text.ToLower() == "open")
{
Label_Text(lblOpenStatus, "Closed");
}
}
}
}
// Set the text using invoke, because text is changed outside of main thread
public void Label_Text(Label label, string text)
{
if (label.InvokeRequired)
{
label.Invoke(delLabelText, new object[] { label, text });
}
else
{
label.Text = text;
}
}
大量的工作进入了这个答案,但它确实为处理器提供了时间(真),并且是编程的熊。这里每1000毫秒运行一个简单的Timer对象并检查当前时间就足够了。 – MrWuf
增加了一个Thread.sleep代码,但在阅读您的评论后,我不同意,定时器可能是要走的路。 –
- 1. 基于当前时间更改类属性
- 2. Label.Text不存在于当前上下文
- 3. 计算基于当前时间
- 4. 按当前时间更改图片
- 5. 如何用Javascript更改当前时间
- 6. 基于计算的更改时间
- 7. javascript更改背景基于时间
- 8. 基于时间更改图像
- 9. MYSQL:基于当前时间返回列时间值?
- 10. MBProgressHUD在connectionDidFinishLoading中更改label.text
- 11. Label.Text更改被阻止?
- 12. 获取基于时区和当前服务时间的时差
- 13. 如何将当前时间更改为用户时间
- 14. 基于当前路线改变js.erb?
- 15. SQL更改规则基于时间发生的时间
- 16. 基于当前记录的更新表
- 17. 当前时间= UTC +/-(UTC +/-当前时间)
- 18. 基于当前日期更改范围验证器的值
- 19. SQL查询 - 基于当前日期的动态月份更改
- 20. 基于当前主题更改控制模板
- 21. 如何更改基于关闭的当前分支的分支?
- 22. 基于当前URL更改css div或正文背景图像
- 23. 在运行时更新label.text
- 24. 基于背景更改TextBlock前景色
- 25. IPhone得到当前系统的时区从RubyOnRails时间格式基于时间
- 26. 在当前时间修改MySQL列基数
- 27. SQL查询更新日期时间字段基于当前日期+值
- 28. 基于当前时间从数据库获取数据PHP
- 29. 设置HTML <select>选项基于当前时间
- 30. 基于当前时间的Javascript页面刷新
什么问题的人? – Adil
严,检查时间,如果它看起来像你想要的,更改label.text属性。的 –
可能重复[如何显示更新时间,系统时间使用C#的标签上?(http://stackoverflow.com/questions/5025840/how-to-display-updated-time-as-system-time-on -a-标签使用-C) –