-2

私はマウスイベントのMouseEnterとMouseLeaveをpictureBoxで使用しています。Back Color は Mouse Enter で変化しますが、通常はマウス Leave イベントでは変化しません。

 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

たぶん、前の色が何だったか覚えておく必要がありますか?

 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 に答える
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 に答える