Timer计时器

Timer计时器

一、  Timer类。

Timer类是微软封装的专门用来计时的计时器,在C#语言当中这样的类一共有三个,他们分别是System.Timers、System.Threading、System.Windows.Forms三个名词空间,这三个名词空间中的Timer类都分别使用在不同的地方,咱们这节课学习的是在System.Windows.Forms名词空间里的Timer类。

 

使用方式:Timer tr = new Timer();

 

二、  Timer类属性。

类型

属性

访问方式

说明

int

Interval

读/写

获取或设置计时器开始计时的时间间隔(以毫秒为单为)

Bool

Enabled

读/写

获取或设置计时器是否正在运行。

在我们使用到计时器时,Interval属性是至关重要的一个环节,这个属性就是用来专门设置计时器间隔时间的,如果不设置这个属性那么我们的计时器就不知道应该多久计算一次。

 

三、  Timer类方法。

返回值类型

方法名称

说明

void

Start

开启计时器。

void

Stop

关闭计时器。

这两个方法与上面我们讲的Enabled属性设置的目的是一样的,设置Enabled或者使用这两个方法都可以。

 

四、  Timer类事件。

事件

方法

委托

参数

Tick

OnTick

EventHandler

EventArgs

这个事件是当上边的那个时间间隔到时的时候才会被触发的,想使用这个计时器需要很多的步骤,以上的属性、事件与方法却一不可。

using System;

using System.Drawing;

using System.Windows.Forms;

namespace Hty

{

    class MyForm : Form

    {

        static void Main()

        {

            Application.Run(new MyForm());

        }

        public MyForm()

        {

            this.Text = "定时器";

            Timer tr = new Timer();

            tr.Interval = 1000;

            tr.Start();

            tr.Tick += new EventHandler(tr_Tick);

        }

        int a;

        protected override void OnPaint(PaintEventArgs e)

        {

            base.OnPaint(e);

            Graphics grfx = e.Graphics;

            grfx.DrawString(a.ToString(),new Font("宋体",10),Brushes.Black,0,0);

            a++;

        }

        void tr_Tick(object sender, EventArgs e)

        {

            Invalidate();

        }

    }

}

 

五、  DateTime(时间与日期)结构。

DateTime结构是微软为我们封装的专门提供日期与时间的结构,这个结构里有很多我们经常要使用的只读属性,比如当前计算机的时间等等。

使用方法1DateTime dt = new DateTime(int year,int month,int day);

使用方法2DateTime dt = new DateTime(int year,int month,int day,int hour,

int minute,int secomd);

使用方法3DateTime dt = new DateTime(int year,int month,int day,int hour,

int minute,int secomd,int msee);

 

类型

属性

访问方式

说明

int

Year

获取年。

int

Month

获取月。

int

Day

获取日。

int

Aour

获取时。

int

Minute

获取分。

int

Second

获取秒。

int

Millisecond

获取毫秒。

DateTime

Date

返回日期。

以上的属性都是只读的,专门用来获取当前DateTime结构中的日期与时间,大家可能觉得我们如果在初始化时直接写进去时间了那么还需要在获得吗?如果只是这样的话是有些多余了,但是DateTime结构有一点非常好就是它可以支持对象与对象之间的运算,例如加法与减法,这样我们就可以来运算时间差了,之后在通过这个属性获得时间差时间就非常有用了。

六、  DateTime(时间与日期)结构静态属性。

类型

属性

访问方式

说明

DateTime

Now

获取年月日与时间。

DateTime

Today

获取年月日。

DateTime

UtcNow

获取国际统一标准时间。

以上三个属性中Now属性对我们非常有用,它可以获取当前计算机的日期与时间并且也可以通过一些小技巧单独只获取年、月、日、时、分、秒的方式。

当使用C#自带的DateTimer类的静态方法NOW想获取系统时间时。

如果想只获取年月日的时候DateTimer.Now.Tostring("d")在Tostring中加入d字符即可。

如果想只获取时分秒的时候DateTimer.Now.Tostring("T")在Tostring中加入T字符即可。

单独获取日(dd)

单独获取月(MM)

单独获取年(yyyy)

单独获取时(HH)

单独获取分(mm)

单独获取秒(ss)

重点:注意大小写字母

七、  DateTime(时间与日期)结构方法。

返回值类型

方法名称

说明

DateTime

TolocalTime

将本地时间转换为国际时间后返回。

DateTime

ToUniversalTime

将国际时间转换为本地时间后返回。

例:

using System;

using System.Drawing;

using System.Windows.Forms;

namespace Hty

{

    class MyForm : Form

    {

        static void Main()

        {

            Application.Run(new MyForm());

        }

 

        public MyForm()

        {

            this.Text = "定时器";

 

            Timer tr = new Timer();

            tr.Interval = 1000;

            tr.Start();

            tr.Tick += new EventHandler(tr_Tick);

        }

        protected override void OnPaint(PaintEventArgs e)

        {

            base.OnPaint(e);

            Graphics grfx = e.Graphics;

            float height = (grfx.MeasureString("a", new Font("宋体", 10))).Height;

            grfx.DrawString(DateTime.Now.ToString("dd"),new Font("宋体",10),Brushes.Black,0,0);

 

            grfx.DrawString(DateTime.Now.ToString("MM"), new Font("宋体", 10), Brushes.Black, 0, height);

 

            grfx.DrawString(DateTime.Now.ToString("yyyy"), new Font("宋体", 10), Brushes.Black, 0, height * 2);

 

            grfx.DrawString(DateTime.Now.ToString("HH"), new Font("宋体", 10), Brushes.Black, 0, height * 3);

 

            grfx.DrawString(DateTime.Now.ToString("mm"), new Font("宋体", 10), Brushes.Black, 0, height * 4);

 

            grfx.DrawString(DateTime.Now.ToString("ss"), new Font("宋体", 10), Brushes.Black, 0, height * 5);

        }

        void tr_Tick(object sender, EventArgs e)

        {

            Invalidate();

        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值