1. 代码实现
以下代码展示了如何使用C#和.NET Framework创建一个Windows Forms应用程序,使一个标签(Label)在窗体内自动移动,并响应用户的点击操作来启动或停止移动。
using System;
using System.Windows.Forms;
using System.Drawing;
namespace 移动图形
{
public partial class Form1 : Form
{
private bool isMoving = false;
private int verticalDirection = 1;
private int horizOntalDirection= 1;
public Form1()
{
InitializeComponent();
}
private void timer1_Tick(object sender, EventArgs e)
{
// 检查边界并反转方向
if (label1.Bottom >= this.Height || label1.Top <= 0)
verticalDirection *= -1;
if (label1.Right >= this.Width || label1.Left <= 0)
horizontalDirection *= -1;
// 更新位置
label1.Top += verticalDirection;
label1.Left += horizontalDirection;
}
private void label1_Click(object sender, EventArgs e)
{
isMoving = !isMoving;
timer1.Enabled = isMoving;
label1.Text = isMoving ? "停止" : "移动";
}
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
// 根据鼠标点击位置调整移动速度
verticalDirection = (e.Y - label1.Top) / 80;
horizOntalDirection= (e.X - label1.Left) / 80;
}
}
}
2. 实现效果
通过上述代码,我们可以在Windows Forms应用程序中实现一个标签的自动移动功能。当用户点击标签时,可以切换其移动状态(开始/停止)。此外,通过点击窗体的不同位置,还可以改变标签的移动速度和方向。