C#實(shí)現(xiàn)漂亮的數(shù)字時(shí)鐘效果
本文實(shí)例講述了用C#做了一個(gè)漂亮的數(shù)字時(shí)鐘。分享給大家供大家參考。
程序運(yùn)行后界面如下:
實(shí)現(xiàn)技術(shù):主要是通過Graphics類的DrawImage方法來繪制數(shù)字時(shí)鐘中所有的數(shù)字,這些數(shù)字是從網(wǎng)上找的一些圖片文件。時(shí)鐘使用DateTime中Now屬性來獲得不同的,時(shí),分,秒,最后通過定時(shí)器來實(shí)現(xiàn)時(shí)鐘的運(yùn)行狀態(tài)。
主要代碼如下:
private Image[] image = new Bitmap[10];
public Form1()
{
InitializeComponent();
for (int i = 0; i < 10;i++ )
{
image[i] = new Bitmap(@"D:/編程/C#/數(shù)字時(shí)鐘/數(shù)字時(shí)鐘/Resources/"+i.ToString()+".jpg");
}
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
int hh = DateTime.Now.Hour; //取得小時(shí)數(shù)字
int hh1 = hh / 10;
int hh2 = hh % 10;
g.DrawImage(image[hh1], 20, 20, 80, 180);
g.DrawImage(image[hh2], 100, 20, 80, 180);
int mm = DateTime.Now.Minute; //取得分鐘數(shù)字
int mm1 = mm / 10;
int mm2 = mm % 10;
g.DrawImage(image[mm1], 260, 20, 80, 180);
g.DrawImage(image[mm2], 340, 20, 80, 180);
int ss = DateTime.Now.Second; //取得秒數(shù)字
int ss1 = ss / 10;
int ss2 = ss % 10;
g.DrawImage(image[ss1], 500, 20, 80, 180);
g.DrawImage(image[ss2], 580, 20, 80, 180);
}
private void timer1_Tick(object sender, EventArgs e) //對(duì)窗體進(jìn)行重繪
{
this.Invalidate();
}
另外,需要將Timer的Interval屬性設(shè)為1000mm,Enable設(shè)置為True!
希望本文所述對(duì)大家的C#程序設(shè)計(jì)有所幫助。
相關(guān)文章
詳解C# TimeSpan 計(jì)算時(shí)間差(時(shí)間間隔)
本篇文章主要介紹了C# TimeSpan 計(jì)算時(shí)間差(時(shí)間間隔),非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2016-12-12在Winform動(dòng)態(tài)啟動(dòng)、控制臺(tái)命令行的方法
winForm 程序輸出類型為 windows 程序(不是命令行程序)在運(yùn)行時(shí)想輸入一些信息編譯開發(fā)調(diào)試,如何實(shí)現(xiàn)這一功能2013-02-02C#中文隨機(jī)數(shù)實(shí)現(xiàn)方法
這篇文章主要介紹了C#中文隨機(jī)數(shù)實(shí)現(xiàn)方法,涉及C#針對(duì)中文及隨機(jī)數(shù)的相關(guān)操作技巧,需要的朋友可以參考下2015-06-06C#條件拼接Expression<Func<T, bool>>的使用
本文主要介紹了C#條件拼接Expression<Func<T, bool>>的使用,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02C# 使用鼠標(biāo)點(diǎn)擊對(duì)Chart控件實(shí)現(xiàn)數(shù)據(jù)提示效果
這篇文章主要介紹了C# 使用鼠標(biāo)點(diǎn)擊對(duì)Chart控件實(shí)現(xiàn)數(shù)據(jù)提示效果,文章給予上一篇的詳細(xì)內(nèi)容做延伸介紹,需要的小伙伴可任意參考一下2022-08-08C#線程 BeginInvoke和EndInvoke使用方法
本文開始C#線程系列講座之一,即BeginInvoke和EndInvoke的使用方法,需要的朋友可以參考下2013-05-05