C# WinForm中动态显示时间的问题---诚邀各位讨论!!

Jason_Steven 2007-03-20 06:27:09
在定时器事件
private void timer1_Tick( object sender , EventArgs e )
{
statusLabel1.Text = dateTime.Year.ToString( ) + "/"
+ dateTime.Month.ToString( ) + "/"
+ dateTime.Day.ToString( ) + ": "
+ dateTime.Hour.ToString( ) + ":"
+ dateTime.Minute.ToString( ) + ":"
+ dateTime.Second.ToString( );
}
中动态显示时间,时间间隔Property Interval = 1000,
启动定时器property Enabled = true.
但是始终只显示程序运行时的静态时间,如果在事件中添加一个显示消息框的语句:
MessageBox.Show( "Timer" );
能每间隔1s弹出一个消息框.

这是什么原因啊?

...全文
735 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jason_Steven 2007-03-21
  • 打赏
  • 举报
回复
谢谢楼上的三位,在事件方法外实例化后,时间还是静态的.
bukater 2007-03-21
  • 打赏
  • 举报
回复
dateTime是DateTime的实例,已经写了dateTime = DateTime.Now了.


就是因为你初始了实例才这样,取得的是当时的值,以后调用相当于只读,直接写代码试试看
guozhiyi 2007-03-20
  • 打赏
  • 举报
回复
Load 事件里开启记时器就行了的呀。


private void timer1_Tick( object sender , EventArgs e )
{
statusLablel1.Text = DataTime.Now.Tostring();
}
Load 事件里开启记时器就行了的呀。
时间间隔Property Interval = 1000
sbshu 2007-03-20
  • 打赏
  • 举报
回复
private void timer1_Tick( object sender , EventArgs e )
{
dateTime=DateTime.Now;
statusLabel1.Text = dateTime.Year.ToString( ) + "/"
+ dateTime.Month.ToString( ) + "/"
+ dateTime.Day.ToString( ) + ": "
+ dateTime.Hour.ToString( ) + ":"
+ dateTime.Minute.ToString( ) + ":"
+ dateTime.Second.ToString( );
}
Jason_Steven 2007-03-20
  • 打赏
  • 举报
回复
另外还请一楼的zswang(伴水清清)(专家门诊清洁工)说详细点,"非堵塞消息"的概念我不清楚,学习C#才十来天,

如果不用此方法还有其它什么方法吗?谢谢各抒己见!!!!
Jason_Steven 2007-03-20
  • 打赏
  • 举报
回复
dateTime是DateTime的实例,已经写了dateTime = DateTime.Now了.
王集鹄 2007-03-20
  • 打赏
  • 举报
回复
楼上....C#是区分大小写的,明显dateTime是字段
txwd0033 2007-03-20
  • 打赏
  • 举报
回复
是不是DateTime.Now.Year.ToString()呀,加上Now
liquanbing123 2007-03-20
  • 打赏
  • 举报
回复
因为把美一秒的时候,都要刷新该控件,所以就要弹出来对话框
王集鹄 2007-03-20
  • 打赏
  • 举报
回复
时间器是通过非堵塞消息触发事件的

所以不会被堵上。。。

道理讲不讲都一样,要相信自己的眼睛-_-!!!!

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧