2013-09-22 42 views
4

我试图在winforms应用程序中实现图像按钮,因为我可以...使用asp.net时很容易 问题似乎是(我怀疑),当鼠标放在图像里面图片框 它没有响应或没有触发鼠标输入事件将光标移到图片框

它看起来像是如果我有一个图片小于pictureBox大小它将接受触发事件的原因,但在图片框内的图像它会不是?

诀窍是将pictureBox设置为sizeMode = zoom。然后当鼠标移动到“imageButton”时做2件事:改变PictureBox的尺寸稍大+改变光标到手

所以我会得到一种鼠标效果,因为我可以用asp.net

有没有人有这个问题? 一开始我尝试mouseHover,转念一想进入会做的更好,因为它只是requiers鼠标通过图片框的边框......进入和悬停事件对我没工作......

编辑:

的情况下确实触发,我可以看到,如果我最初设置sizemode到CenterImage和事件 里面我问sizemode =变焦,所以效果剂量发生..但cursor.current = Cursors.Hand会不变。

回答

10

这应该工作

private void pictureBox1_MouseEnter(object sender, EventArgs e) 
    { 
     pictureBox1.SizeMode = PictureBoxSizeMode.StretchImage; 
     pictureBox1.Cursor = Cursors.Hand; 
    } 

    private void pictureBox1_MouseLeave(object sender, EventArgs e) 
    { 
     pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; 
     pictureBox1.Cursor = Cursors.Default; 
    } 
1

好像我应该知道如何使用游标类更好。

cursor=Cursors.hand; 

而不是

cursor.current=Cursors.hand; 

这是令人尴尬..

1

只在图片框添加MouseMove事件并设置光标为这个

private void pictureBox1_MouseMove(object sender, MouseEventArgs e) 
 
     { 
 
      pictureBox1.Cursor = Cursors.Hand; 
 
     }

+1

请提供一些解释给你的代码更容易被理解的休息。 – afxentios