源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c# winform时钟的实现代码

  • 时间:2021-02-24 07:00 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c# winform时钟的实现代码
代码如下:
[u]复制代码[/u] 代码如下:
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));            }      } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部