鼠标事件(MouseEnter / MouseLeave / Click)#
来源:
D:\study\C#1\WinForm\stu0805\stu0805、stu0806\0806\图片
1. 常用鼠标事件#
| 事件 | 触发时机 | 典型场景 |
|---|---|---|
Click |
点击时 | 按钮功能 |
MouseEnter |
鼠标移入时 | 悬停效果 |
MouseLeave |
鼠标移出时 | 恢复原样 |
MouseDown / MouseUp |
按下 / 松开 | 拖拽、按住状态 |
MouseMove |
鼠标移动时 | 实时跟随 |
2. 实战一:鼠标悬停切换密码框显隐#
private void button1_MouseEnter(object sender, EventArgs e)
{
textBox1.UseSystemPasswordChar = false; // 鼠标移入:显示明文
}
private void button1_MouseLeave(object sender, EventArgs e)
{
textBox1.UseSystemPasswordChar = true; // 鼠标移出:显示密文
}
3. 实战二:鼠标悬停切换图片#
private void label1_MouseEnter(object sender, EventArgs e)
{
pb1.Visible = true;
pb1.Image = Properties.Resources.guga; // 鼠标移入显示大图
}
private void label1_MouseLeave(object sender, EventArgs e)
{
pb1.Image = Properties.Resources._131905150_p0_master1200; // 鼠标移出恢复默认
}
图片点击切换#
// 点击不同的图片名,切换大图显示
private void feibi_Click(object sender, EventArgs e)
{
pb1.Image = Properties.Resources.phoebe_1;
}
private void guga_Click(object sender, EventArgs e)
{
pb1.Image = Properties.Resources.guga;
}
// 鼠标悬停时自动切换
private void feibi_MouseEnter(object sender, EventArgs e)
{
pb1.Image = Properties.Resources.phoebe_1;
}
4. 实战三:小图点击 → 大图预览(sender 共用事件)#
// 多个小图 PictureBox 共用同一个事件
private void img1_Click(object sender, EventArgs e)
{
imgB.Image = (sender as PictureBox).Image; // 把被点击的小图给大图
imgB.SizeMode = PictureBoxSizeMode.Zoom; // 等比缩放显示
}
💡 通过
sender拿到被点击的 PictureBox,一张事件处理所有小图。见02-事件机制/02-事件的联动响应与sender。
5. 鼠标事件参数(MouseEventArgs)#
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
label1.Text = $"坐标:({e.X}, {e.Y})"; // 鼠标在控件内的坐标
label2.Text = $"按钮:{e.Button}"; // 按下的鼠标键
}
| MouseEventArgs 属性 | 说明 |
|---|---|
e.X / e.Y |
鼠标在当前控件内的坐标 |
e.Button |
按下的鼠标键(Left / Right / Middle) |
e.Clicks |
点击次数(可判断双击) |
相关笔记#
- 事件的基本使用 — 事件基础