a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

c# winform時鐘的實現代碼

2020-01-24 02:53:46
字體:
來源:轉載
供稿:網友

代碼如下:

復制代碼 代碼如下:

using System;
 using System.Collections.Generic;
 using System.ComponentModel;
 using System.Data;
 using System.Drawing;

 using System.Text;
 using System.Windows.Forms;

 namespace Simpclock
 {
     public partial class Form1 : Form
     {
         DateTime date = DateTime.Now;

         public Form1()
         {
             InitializeComponent();

         }

         private void Form1_Load(object sender, EventArgs e)
         {
             date = DateTime.Now;

         }

         private void OnPaint(object sender, PaintEventArgs e)
         {
             Font font = new Font("Times New Roman", 20);
             Graphics g = CreateGraphics();
             g.DrawString(date.ToString(), font, Brushes.Firebrick, 10,330 );
             g.DrawString(date.DayOfWeek.ToString(), font, Brushes.Red, 250, 330);
             DrawDial(g);
             DrawSecondPointer(g);
             DrawMinutePointer(g);
             DrawHourPointer(g);

         }
         //刷新時間
         private void OnTime(object sender, EventArgs e)
         {
             date = DateTime.Now;
             Invalidate();
         }
         //畫鐘表
         //表盤部分
         Point GetPosition(int s, Point center, double radius)//定位
         {
             Point p = new Point();
             double x = center.X + radius * Math.Sin(Math.PI / 30 * s);
             double y = center.Y - radius * Math.Cos(Math.PI / 30 * s);
             p.X = (int)x;
             p.Y = (int)y;
             return p;
         }

         void DrawDial(Graphics g)//外圓及刻度
         {
             int n;
             Rectangle rect = new Rectangle(40, 10, 300, 300);
             //g.FillEllipse(Brushes.White, 40, 10, 300, 300);
             g.DrawEllipse(new Pen(Color.Black, 3), rect);
             Point p1, p2;
             Point center = new Point(190, 160);
             for (n = 0; n < 60; n++)
             {
                 p1 = GetPosition(n, center, 150);
                 if (n % 5 == 0)
                 {
                     p2 = GetPosition(n, center, 130);
                     g.DrawLine(new Pen(Color.Black, 2), p1, p2);
                 }
                 else
                 {
                     p2 = GetPosition(n, center, 140);
                     g.DrawLine(Pens.Red, p1, p2);
                 }
             }
             Font font = new Font("Times New Roman", 20);
             n = 0;
             p1 = GetPosition(n, center, 130);
             g.DrawString("XII", font, Brushes.Black, p1.X - 25, p1.Y);
             n += 15;
             p1 = GetPosition(n, center, 130);
             g.DrawString("III", font, Brushes.Black, p1.X - 35, p1.Y - 15);
             n += 15;
             p1 = GetPosition(n, center, 130);
             g.DrawString("VI", font, Brushes.Black, p1.X - 20, p1.Y - 30);
             n += 15;
             p1 = GetPosition(n, center, 130);
             g.DrawString("IX", font, Brushes.Black, p1.X, p1.Y - 15);
         }
         //秒針部分
         void DrawSecondPointer(Graphics g)
         {
             Point center = new Point(190, 160);
             Point p;
             p = GetPosition(date.Second, center, 130);
             g.DrawLine(Pens.Red, center, p);
             g.FillEllipse(Brushes.Red, new Rectangle(p.X - 2, p.Y - 2, 4, 4));

         }
         //分針部分
         void DrawMinutePointer(Graphics g)
         {
             Point center = new Point(190, 160);
             Point p;
             p = GetPosition(date.Minute, center, 120);
             g.DrawLine(Pens.Blue, center, p);
             //g.FillEllipse(Brushes.Blue, new Rectangle(p.X - 4, p.Y - 4, 8, 8));
         }
         //時針部分
         Point GetHourPosition(Point center, double radius)
         {
             Point p = new Point();
             int h = date.Hour;
             int m = date.Minute;
             double t = Math.PI / 6 * h + Math.PI / 360 * m;
             double x = center.X + radius * Math.Sin(t);
             double y = center.Y - radius * Math.Cos(t);
             p.X = (int)x;
             p.Y = (int)y;
             return p;
         }
         void DrawHourPointer(Graphics g)
         {
             Point center = new Point(190, 160);
             Point p = GetHourPosition(center, 100);
             g.DrawLine(new Pen(Brushes.Black, 2), center, p);
             //去指針圓尖
             // g.FillEllipse(Brushes.Black,
             //              new Rectangle(p.X - 6, p.Y - 6, 12, 12));
             g.FillEllipse(Brushes.YellowGreen,
             new Rectangle(center.X - 6, center.Y - 6, 12, 12));

 
         }

     }
}

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 久久久久亚洲 | 国产网址 | 中文字幕在线不卡 | 国产一区二区精品 | 欧美日韩一区二区在线观看 | 91激情在线 | 国产欧美日韩综合精品 | 狠狠干影院 | 簧片av| 99精品欧美一区二区蜜桃免费 | 久久国产精品91 | 国产成人综合在线 | 欧美成人在线网站 | 亚洲精品乱码久久久久久金桔影视 | 欧美日韩成人在线视频 | 日韩精品一二区 | 香蕉一区| 精品久久久久久久久久久久久久 | 久草资源在线视频 | 国产视频久久久久 | 国产高清视频 | 国产精品成人免费一区二区视频 | 一区二区三区日韩 | 91精品中文字幕一区二区三区 | 极品美女一线天 | 日韩成年视频 | 在线天堂中文在线资源网 | 99久久99久久精品国产片果冻 | 91精品蜜臀一区二区三区在线 | 久久精品久久精品 | 久久艹久久 | 国产毛片毛片 | 成人久久久精品国产乱码一区二区 | 黄色成人在线播放 | 国产一区二区三区四区五区加勒比 | 国产一区二区三区四区在线观看 | 日韩美女爱爱 | 日韩视频在线视频 | 热久久这里只有精品 | av在线一区二区 | bxbx成人精品一区二区三区 |