01-1 窗体水平移动、垂直移动、斜方向移动、随即移动的方法。

本文介绍了一个使用三个定时器(timer1、timer2、timer3)控制窗体在屏幕上水平、垂直及随机移动的示例程序。窗体将在屏幕范围内循环移动,并通过按钮控制不同移动方式的切换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目需要有3个timer来控制不停的移动窗体。

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; //using System.Linq; using System.Text; using System.Windows.Forms; namespace Case01_1 { public partial class Form1 : Form { int ScreenWidth = SystemInformation.PrimaryMonitorMaximizedWindowSize.Width; //屏幕的宽度 int ScreenHeight = SystemInformation.PrimaryMonitorMaximizedWindowSize.Height; //屏幕的高度 Random rd = new Random(); public Form1() { InitializeComponent(); } private void timer1_Tick(object sender, EventArgs e) { Point MyPos = new Point(this.DesktopLocation.X, this.DesktopLocation.Y); //窗体的当前位置 if (MyPos.X + Width < ScreenWidth) { this.DesktopLocation = new Point(MyPos.X + 1,MyPos .Y ); } else { this.DesktopLocation = new Point(0, 0); } } private void button1_Click(object sender, EventArgs e) { this .timer1 .Enabled = true ; this.timer2.Enabled = false; this.timer3.Enabled = false; } private void button2_Click(object sender, EventArgs e) { this.timer1.Enabled = false ; this.timer2.Enabled = true ; this.timer3.Enabled = false; } private void timer2_Tick(object sender, EventArgs e) { Point MyPos = new Point(this.DesktopLocation.X, this.DesktopLocation.Y); //窗体的当前位置 if ( MyPos.Y + Height < ScreenHeight) { this.DesktopLocation = new Point(MyPos.X, MyPos.Y + 1); } else { this.DesktopLocation = new Point(0, 0); } } private void timer3_Tick(object sender, EventArgs e) { int x = rd.Next(1000); int y = rd.Next(700); timer3.Interval = 2000;//2秒移动一次 Point MyPos = new Point(this.DesktopLocation.X, this.DesktopLocation.Y); //窗体的当前位置 if (MyPos.X + Width < ScreenWidth || MyPos.Y + Height < ScreenHeight) { this.DesktopLocation = new Point(x, y);//随即移动 //this.DesktopLocation = new Point(MyPos.X + 1, MyPos.Y + 1);//斜方向移动 } else { this.DesktopLocation = new Point(0, 0); } } private void button3_Click(object sender, EventArgs e) { this.timer1.Enabled = false ; this.timer2.Enabled = false; this.timer3.Enabled = true ; } private void button4_Click(object sender, EventArgs e) { this.timer1.Enabled = false ; this.timer2.Enabled = false; this.timer3.Enabled = false; } private void Form1_Load(object sender, EventArgs e) { this.timer1.Enabled = true; } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值