C#中的鼠标事件

时间:2013-09-15 08:40:57

标签: c#

我将鼠标事件MouseEnter和MouseLeave与pictureBox一起使用。 “返回颜色”随鼠标输入而变化,但使用鼠标“离开事件”时不会正常更改。

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

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

3 个答案:

答案 0 :(得分: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;
 }

答案 1 :(得分: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;
 }

答案 2 :(得分:0)

看来是对的。 你应该在mouseleave事件中加入一个突破点。 也许pictureBox1_MouseLeave事件设置不正确。