永发信息网

clock_2x4如何制作

答案:2  悬赏:80  手机版
解决时间 2021-04-03 16:35
如题...

小米主题设计clock_2x4如何制作
最佳答案
下面是简易时钟的实现:  
简易时钟的界面只有数字和指针。这里肯定要用到Timer控件啦,每秒钟刷新界面,这样的话就要求双缓冲。
第一步:添加用户控件,命名为myClock。
第二步:构造函数实例化控件和做双缓冲处理。
public myClock()
{
InitializeComponent();
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.Selectable, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.SetStyle(ControlStyles.UserPaint, true);
myTimer = new Timer();
myTimer.Interval = 1000;
myTimer.Enabled = true;
myTimer.Tick += new EventHandler(myTimer_Tick);
}
第三步:Paint重绘事件
private void myClock_Paint(object sender, PaintEventArgs e)
{
Graphics gra = e.Graphics;//创建一个画板

//表盘上的指针
using (SolidBrush sb = new SolidBrush(Color.Blue))
{
Font f = new Font("宋体", 18);
gra.DrawString("1", f, sb, 195, 20);
gra.DrawString("2", f, sb, 235, 60);
gra.DrawString("3", f, sb, 250, 123);
gra.DrawString("4", f, sb, 235, 183);
gra.DrawString("5", f, sb, 195, 225);
gra.DrawString("6", f, sb, 125, 245);
gra.DrawString("7", f, sb, 55, 225);
gra.DrawString("8", f, sb, 15, 183);
gra.DrawString("9", f, sb, 0, 123);
gra.DrawString("10", f, sb, 15, 60);
gra.DrawString("11", f, sb, 55, 20);
gra.DrawString("12", f, sb, 125, 0);
}

//表盘的框架:黑色,宽度是3
using (Pen p = new Pen(Color.Black, 3))
{
p.DashStyle = DashStyle.Solid;
gra.DrawEllipse(p, 0, 0, 270, 270);
}

//表盘上的三个指针i,j,k;
using (Pen p1 = new Pen(Color.Red))
{
using (Pen p2 = new Pen(Color.Blue))
{
using (Pen p3 = new Pen(Color.Yellow))
{
gra.DrawPie(p3, 20, 20, 230, 230, k, 0.1f);//秒
gra.DrawPie(p2, 30, 30, 210, 210, j, 0.1f);//分
gra.DrawPie(p1, 40, 40, 190, 190, i, 0.1f);//小时
}
}
}

//指针旋转的代码
if (i < 360)
{
i += 6;
if (i == 270)
{
if (j <= 360)
{
j += 6;
if (j == 270)
{
if (k <= 360)
{
k += 30;
}
else
{
k = 30;
}
}
}
else
{
j = 6;
}
}
}
else
{
i = 6;
}
}
贴出所有代码:
//控件名:myClock
using System;
using System.Collections.Generic;
using SystemponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Windows.Forms;
using System.Drawing.Drawing2D;
namespace myControl
{
public partial class myClock : UserControl
{
public myClock()
{
InitializeComponent();
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.Selectable, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.SetStyle(ControlStyles.UserPaint, true);
myTimer = new Timer();
myTimer.Interval = 1000;
myTimer.Enabled = true;
myTimer.Tick += new EventHandler(myTimer_Tick);
}
private Timer myTimer;
//定义三个变量
float i = 270, j = 270, k = 270;
private void myTimer_Tick(object sender, EventArgs e)
{
this.Invalidate();
}
private void myClock_Paint(object sender, PaintEventArgs e)
{
Graphics gra = e.Graphics;//创建一个画板

//表盘上的指针
using (SolidBrush sb = new SolidBrush(Color.Blue))
{
Font f = new Font("宋体", 18);
gra.DrawString("1", f, sb, 195, 20);
gra.DrawString("2", f, sb, 235, 60);
gra.DrawString("3", f, sb, 250, 123);
gra.DrawString("4", f, sb, 235, 183);
gra.DrawString("5", f, sb, 195, 225);
gra.DrawString("6", f, sb, 125, 245);
gra.DrawString("7", f, sb, 55, 225);
gra.DrawString("8", f, sb, 15, 183);
gra.DrawString("9", f, sb, 0, 123);
gra.DrawString("10", f, sb, 15, 60);
gra.DrawString("11", f, sb, 55, 20);
gra.DrawString("12", f, sb, 125, 0);
}

//表盘的框架:黑色,宽度是3
using (Pen p = new Pen(Color.Black, 3))
{
p.DashStyle = DashStyle.Solid;
gra.DrawEllipse(p, 0, 0, 270, 270);
}

//表盘上的三个指针i,j,k;
using (Pen p1 = new Pen(Color.Red))
{
using (Pen p2 = new Pen(Color.Blue))
{
using (Pen p3 = new Pen(Color.Yellow))
{
gra.DrawPie(p3, 20, 20, 230, 230, k, 0.1f);//秒
gra.DrawPie(p2, 30, 30, 210, 210, j, 0.1f);//分
gra.DrawPie(p1, 40, 40, 190, 190, i, 0.1f);//小时
}
}
}

//指针旋转的代码
if (i < 360)
{
i += 6;
if (i == 270)
{
if (j <= 360)
{
j += 6;
if (j == 270)
{
if (k <= 360)
{
k += 30;
}
else
{
k = 30;
}
}
}
else
{
j = 6;
}
}
}
else
{
i = 6;
}
}
}
}
全部回答
支持一下感觉挺不错的
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
家里的小狗在地板上跑,发出声响』如何能让声
单选题关于声现象,下列说法正确的是A.声音的
轴承16056m是什么轴承
办公室下班标语,关于上下班标语
宿迁市区哪家饭店味道好?
高中化学:储氢金属中氢以什么形式存在
外形尺寸463x463x686是多少尺寸
QQ头像上的笑脸标志是什么意思
127.0.0.1可以拼通能证明什么?
新浪微博聊天怎么才可以视频
竞赛用离合器与普通离合器的区别
沈阳市农民工维权中心在哪?电话是多少
怎样在myeclipse中编写 xml文件
单选题The uniform makes us
阿德勒心理学经典语录,凤于九天里若言喜欢凤
推荐资讯
铝锅做饭会摄入过多的重金属铝吗?
金榜行动的寒假作业七年级上册答案
蝴蝶花的花瓣到底有几中颜色?
12除以5分之4除以8分之3等于多少
煮熟的腊肉可以放冷冻室冷冻吗?
从狼垡打滴滴到天安门需要多少钱?
20元纸币正面是个戴眼镜的背面是个菩萨手里拿
有没有像《七个房间》的恐怖小说?
苹果x进人duf
管明是全国百名老中医吗
新买的皮鞋割脚怎么办??
广东省揭阳市揭西县五云镇彭上游
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?