C#实现四个timer随便转屏保
程序员文章站
2024-03-16 20:54:04
...
代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace 四个timer随便转 //名称
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e) //当form1加载时
{
this.FormBorderStyle = FormBorderStyle.None; //设置其窗体边框为空
this.Width = 300; //窗体宽度为300
this.Height = 300; //窗体高度为300
this.Location = new Point(0, 0); //给窗体左上角定位
this.Opacity = (0.8); //设置窗体的不透明度为0.8
timer1.Start(); //启动timer1
}
private void timer1_Tick(object sender, EventArgs e)
{
this.Left += 3; //当timer1启动时窗体left每一个时间段增加3
this.Top += 3; //当timer1启动时窗体top每一个时间段增加3
if (this.Top+this.Height>=Screen.PrimaryScreen.WorkingArea.Height)
//如果此时窗体移动的位置为其top加上其height大于等于工作区的height时则执行
{
timer1.Stop(); //停止timer1
timer2.Start();//当timer1停止时则需要启动timer2来控其移动位置
}
if (this.Left+this.Width>=Screen.PrimaryScreen.WorkingArea.Width)
//如果此时窗体的位置为其left加上其width大于等于显示区的宽度则执行
{
timer1.Stop(); //这里为什么停止timer1是因为下面有启动timer1
//此时位置条件符合if判断
//所以timer1停止 暂且先不管 依照预测位移顺序按部就班
timer3.Start(); //此时则又需要重新启动timer3 来控制其位移 因为timer3的位移
//控制公式 正好符合其位移到指定的位置公式
}
}
private void timer2_Tick(object sender, EventArgs e) //timer2启动时
{
this.Top -= 3; //其top每一个时间段减少3的距离
this.Left += 3; //其left每一个时间段增加3的距离
if (this.Top <= 0) //如果这时窗体的位置为其top小于等于零时则执行
{
timer2.Stop(); //停止timer2 因为要给他新的位移方式和方向啊
timer1.Start(); //而此时timer1就符合其位移的方式和方向 所以咱启动timer1
//至于什么时候停止timer1 则需要在timer1中增加新的判断条件
}
}
private void timer3_Tick(object sender, EventArgs e) //当timer3启动时
{
this.Top += 3; //其top每隔间隔时间增加3的距离
this.Left -= 3; //其left每隔间隔时间减少3的距离你
if (this.Top+this.Height>=Screen.PrimaryScreen.WorkingArea.Height )
{ //按照timer3的位移方式 当窗体的移动位置符合此条件时则执行
timer3.Stop(); //停止timer3 让其寻找新的移动方式重新位移
timer4.Start();//此时启动timer4来进行位移 启动后则需要停止那就去找停止条件
}
if (this.Left<=0) //此时的情况与上面重新启动timer1一样
{ //当timer3 启动后 其位移位置符合left小于等于零则执行
timer3.Stop(); //(先不管按照预想位移去执行) 此时则停止timer3 寻找新的位移
timer1.Start(); //那 此时timer1又符合条件了 所以启动timer1 实现循环
}
}
private void timer4_Tick(object sender, EventArgs e)
{ //当timer4启动时
this.Top -= 3; //其top每隔间隔时间减少3
this.Left -= 3; //其left每隔间隔时间减少3
if (this.Top <=0)
{ //当位移的位置其top小于等于零 则执行
timer4.Stop(); //此时停止timer4 来寻找新的位移方式
timer3.Start(); //而此时timer3就符合新的位移方式 则启动timer3
//要想停止timer3 则需要在timer3中添加新的判断条件
}
}
}
}
入坑不久 欢迎诸位指正 !
可能有的顺序表达的有点混乱 其实就是寻找符合下一步的移动公式然后启动其timer 然后在一定的位置停止
然后寻找新的移动方式 进行位移 至于重复启动的timer 就是因为他符合新的移动条件~~~
至于怎么变为圆形 另一篇有讲 这个地方有待加强!
上一篇: CSS提高篇(复合选择器)
推荐阅读