A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

吴彤辉

中级黑马

  • 黑马币:1

  • 帖子:56

  • 精华:0

© 吴彤辉 中级黑马   /  2013-10-31 16:40  /  1764 人查看  /  12 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴彤辉 于 2013-11-1 23:20 编辑
  1. private void timer1_Tick(object sender, EventArgs e)
  2. {
  3.   this.CurrentTime.Text = "当前时间:" + DateTime.Now.ToString();
  4. }
复制代码
通过一个timer的tick事件,在label中显示当前时间,在窗口打开过1s后才会显示当前时间,如何才能当窗口打开时立刻显示当前时间?

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

12 个回复

倒序浏览
本帖最后由 宋清飞 于 2013-10-31 17:56 编辑

之所以会有1S后才显示时间是因为,timer控件的interval属性值写成了1000,意思是每隔1秒,发生一个动作。
在窗体的事件中找到Load事件,在里面添加一个timer1_Tick方法(添加的时候可以通过下拉菜单中的选项选择),Load事件,就是在加载窗体的同时,触发一个动作,这里的动作就是timer1_Tick中的this.CurrentTime.Text = "当前时间:" + DateTime.Now.ToString();
回复 使用道具 举报
宋清飞 发表于 2013-10-31 17:38
之所以会有1S后才显示时间是因为,timer控件的interval属性值写成了1000,意思是每隔1秒,发生一个动作。
...

Interval这个属性,默认单位为毫秒吗?
在timer的tick事件里,再为label赋值吗?
回复 使用道具 举报
直接写到form窗体中。当程序运行的时候直接获取当前时间赋值给label就可以了。然后再在label中进行、

private void Form1_Load(object sender, EventArgs e)
        {
            //当窗体加载的时候  将当前时间 赋值给lable
            labelTime.Text = DateTime.Now.ToString();
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            labelTime.Text = DateTime.Now.ToString();
}//记得调1000毫秒。

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

回复 使用道具 举报
本帖最后由 宋清飞 于 2013-10-31 19:35 编辑
吴彤辉 发表于 2013-10-31 18:25
Interval这个属性,默认单位为毫秒吗?
在timer的tick事件里,再为label赋值吗? ...

interval,默认单位是毫秒。
  1. namespace WindowsFormsApplication3
  2. {
  3.       public partial class Form1 : Form
  4.      {
  5.            public Form1()
  6.          {
  7.              InitializeComponent();
  8.           }

  9.              private void timer1_Tick(object sender, EventArgs e)
  10.              {
  11.                 this.CurrentTime.Text = "当前时间:" + DateTime.Now.ToString();
  12.               }
  13.       }
  14. }
复制代码

QQ截图20131031192314.png (62.3 KB, 下载次数: 47)

Form1事件

Form1事件

QQ截图20131031192530.png (50.24 KB, 下载次数: 48)

QQ截图20131031192530.png

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

回复 使用道具 举报
Interval的默认单位为毫秒,你的这个问题只需将timer控件的Interval属性设置的小点就可以实现在Label标签中立即显示时间的效果,
你可以试试将Interval的值设为100、10、0看看不同的效果。

评分

参与人数 1技术分 +1 收起 理由
haxyek + 1

查看全部评分

回复 使用道具 举报
在Form1_Load事件中给label赋值;
  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             label1.Text = "当前时间:" + DateTime.Now.ToString();
  4.         }
复制代码
回复 使用道具 举报
很简单的,在Form1Load方法里面写一行代码label1.Text = "当前时间:" + DateTime.Now.ToString();。这样就可以在窗体加载时立即显示当前时间
回复 使用道具 举报
可以窗体打开的时候,就显示当前时间
private void Form1_Load(object sender, EventArgs e)
        {
            label1.Text = DateTime.Now.ToString();
        }
回复 使用道具 举报
在formload事件中做一次当前时间显示。不过据说timer这东西效率不高,如果是复杂的程序,建议用后台线程或其他方法。
回复 使用道具 举报
宋清飞 发表于 2013-10-31 19:03
interval,默认单位是毫秒。

很详细,多谢了,请问你的软件是哪个版本的啊

点评

2012的。  发表于 2013-11-1 17:52
回复 使用道具 举报
这个不要局限于timer
每个类都有自己的用途
你可以在formload的时候 直接让控件显示时间
load方法,是在窗口打开的时候 就首先执行的
这个你可以看下programe.cs 首先调用的是方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马