-2

我将鼠标事件 MouseEnter 和 MouseLeave 与图片框一起使用。背景颜色会随着鼠标进入而改变,但不会随着鼠标离开事件而正常改变。

 public void pictureBox1_MouseEnter(object sender, EventArgs e)
 {
    pictureBox1.BackColor = Color.Blue;
 }

 public void pictureBox1_MouseLeave(object sender, EventArgs e)
 {
     pictureBox1.BackColor = SystemColors.Control;
 }
4

3 回答 3

0

您必须知道以前的颜色是什么并相应地更改它。还要确保它注册了这两个事件的控件:

例如,如果在此之前颜色为灰色:

 public void pictureBox1_MouseEnter(object sender, EventArgs e)
 {
    pictureBox1.BackColor = Color.Blue;
 }

 public void pictureBox1_MouseLeave(object sender, EventArgs e)
 {
     pictureBox1.BackColor = Color.Gray;
 }
于 2013-09-15T08:47:14.463 回答
0

这似乎是正确的。您应该在 mouseleave 事件中设置一个断点。可能 pictureBox1_MouseLeave 事件设置不正确。

于 2013-09-15T08:50:08.567 回答
0

也许你应该记得以前的颜色是什么?

 Color prevColor = Color.Black;
 public void pictureBox1_MouseEnter(object sender, EventArgs e)
 {
    prevColor = pictureBox1.BackColor;
    pictureBox1.BackColor = Color.Blue;
 }

 public void pictureBox1_MouseLeave(object sender, EventArgs e)
 {
     pictureBox1.BackColor = prevColor;
 }
于 2013-09-15T08:44:42.870 回答