也学了几天的编程了,做了个小时钟试试自己!

首先建一个窗体应用程序:(图片是运行的结果)

首先:重绘窗体,把窗体化成一个圆形!

 protected override void  OnPaint(PaintEventArgs e)
        {
            //把窗体画成圆
            GraphicsPath shape = new GraphicsPath();
            shape.AddEllipse(0, 0, 200, 200);
            this.Region = new Region(shape);

}

然后就要在窗体上画表盘和数字了:这我写了个方法Clock

该方法需要有三个参数:即是时分秒

 String date = DateTime.Now.ToLongDateString();
            Graphics g = panel1.CreateGraphics();
            Font fntDate = new Font("Verdana", 8);
            Font fnt = new Font("Verdana", 12);
            g.Clear(Color.Gray);//清楚指针走过的痕迹

            g.DrawString(date, fntDate, new SolidBrush(Color.Black), 62, 62);//显示日期

            //此处绘制表盘的刻度与指针
            #region 表盘上的数字
            g.DrawString("1", fnt, new SolidBrush(Color.Black), 140, 20);//画数字1
            g.DrawString("2", fnt, new SolidBrush(Color.Black), 170, 50);//画数字2
            g.DrawString("3", fnt, new SolidBrush(Color.Black), 180, 89);//画数字3
            g.DrawString("4", fnt, new SolidBrush(Color.Black), 168, 133);//画数字4
            g.DrawString("5", fnt, new SolidBrush(Color.Black), 140, 168);//画数字5
            g.DrawString("6", fnt, new SolidBrush(Color.Black), 92, 180);//画数字6
            g.DrawString("7", fnt, new SolidBrush(Color.Black), 50, 168);//画数字7
            g.DrawString("8", fnt, new SolidBrush(Color.Black), 16, 133);//画数字8
            g.DrawString("9", fnt, new SolidBrush(Color.Black), 0, 92);//画数字9
            g.DrawString("10", fnt, new SolidBrush(Color.Black), 10, 53);//画数字10
            g.DrawString("11", fnt, new SolidBrush(Color.Black), 37, 23);//画数字11
            g.DrawString("12", fnt, new SolidBrush(Color.Black), 85, 0);//画数字12
            #endregion
            Pen penH = new Pen(Color.DarkBlue, 1);//画时针的画笔
            Pen penM = new Pen(Color.DarkRed, 1);//画分针的画笔
            Pen penS = new Pen(Color.Black, 1);//画秒针的画笔
            //画秒针
            float Xs = (float)(75 * Math.Sin(Second/30d*Math.PI) + 100);
            float Ys = (float)(100 - 75 * Math.Cos(Second/30d*Math.PI));
            g.DrawLine(penS,100,100, Xs, Ys);
            //画分针
            float Xm = (float)(70 * Math.Sin((Minute * 60 + Second) / 1800d * Math.PI) + 100);
            float Ym = (float)(100 - 70 * Math.Cos((Minute * 60 + Second) / 1800d * Math.PI));
            g.DrawLine(penM, 100, 100, Xm, Ym);
            // 画时针
            if (Hour > 12)
            {
                g.DrawString("PM", fntDate, new SolidBrush(Color.Black), 90, 120);//显示PM
                Hour = Hour - 12;
            }
            else
            {
                g.DrawString("AM", fntDate, new SolidBrush(Color.Black), 90, 120);//显示AM
            }
            double AllSecondH = (Hour * 3600 + Minute * 60 + Second) / 21600d;
            float Xh = (float)(50 * Math.Sin(AllSecondH * Math.PI) + 100);
            float Yh = (float)(100 - 50 * Math.Cos(AllSecondH * Math.PI));
            g.DrawLine(penH, 100, 100, Xh, Yh);

最后还需要一个Timer控件来刷新时钟:

 int  S = DateTime.Now.Second;//获取系统时间秒
          int  M= DateTime.Now.Minute;//获取系统时间分
          int  H = DateTime.Now.Hour;//获取系统时间时

Clock(s,m,h)

这基本及OK了,希望对你有所帮助!