窗体中的鼠标移动事件
本文关键字:移动 事件 鼠标 窗体 | 更新日期: 2023-09-27 18:32:34
我希望能够将图形绘制到表单窗口而不是图片框。但表单窗口似乎没有捕获鼠标移动事件。
namespace CollisionTest
{
public partial class Form1 : Form
{
private Graphics paper;
private Pen pen;
public Form1()
{
InitializeComponent();
//paper = pictureBox1.CreateGraphics();
paper = this.CreateGraphics();
pen = new Pen(Color.Blue);
pen.Width = 5;
this.MouseMove += new System.Windows.Forms.MouseEventHandler(Form1_MouseMove);
}
private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
paper.Clear(Form1.ActiveForm.BackColor);
paper.DrawRectangle(pen, e.X + 10, this.Height - 20, 50, 10);
}
}
}
论文。清除方法 清除整个绘图图面,并用指定的背景色填充它。
因此,当您移动鼠标时,首先要清除图形对象并绘制一些内容,以便看不到任何内容。使用删除进行测试:
paper.Clear(Form1.ActiveForm.BackColor);
从您的代码
看起来你想要一个"乒乓球拍"穿过你的表格底部?
只需将this.Height
更改为this.ClientRectangle.Height
:
public partial class Form1 : Form
{
private Pen pen;
private Graphics paper;
public Form1()
{
InitializeComponent();
pen = new Pen(Color.Blue, 5);
paper = this.CreateGraphics();
this.MouseMove += new System.Windows.Forms.MouseEventHandler(Form1_MouseMove);
}
private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
{
paper.Clear(this.BackColor);
paper.DrawRectangle(pen, e.X + 10, this.ClientRectangle.Height - 20, 50, 10);
}
}