C# 将光标移到pictureBox上

C# 将光标移到pictureBox上,c#,winforms,mouseevent,mouseenter,mousehover,C#,Winforms,Mouseevent,Mouseenter,Mousehover,我试图在winforms应用程序中尽可能地实现一个图像按钮…使用asp.net时很容易 问题似乎是(我怀疑)当鼠标在picturebox内的图像上时 它没有响应或没有触发mouseEnter事件 看起来如果我有一张图片小于pictureBox大小,它会接受触发事件的原因,但在pictureBox内的图片上它不会 诀窍是将pictureBox设置为sizeMode=zoom。然后,当鼠标位于“imageButton”上方时,执行两项操作:将PictureBox的大小更改大一点+将光标更改为手动 因

我试图在winforms应用程序中尽可能地实现一个图像按钮…使用asp.net时很容易 问题似乎是(我怀疑)当鼠标在picturebox内的图像上时 它没有响应或没有触发mouseEnter事件

看起来如果我有一张图片小于pictureBox大小,它会接受触发事件的原因,但在pictureBox内的图片上它不会

诀窍是将pictureBox设置为sizeMode=zoom。然后,当鼠标位于“imageButton”上方时,执行两项操作:将PictureBox的大小更改大一点+将光标更改为手动

因此,我将获得一种鼠标悬停的效果,就像使用asp.net一样

有人有这个问题吗? 起初我尝试了鼠标悬停,然后我认为enter会做得更好,因为它只要求鼠标通过图片框的边框。。。enter和hover事件对我都不起作用

编辑:

事件确实会触发,我可以看到,如果我最初将sizemode设置为CenterImage并在事件内部
我要求sizemode=zoom,因此效果会发生..但是cursor.current=Cursors.Hand不会改变。

似乎我应该更清楚如何使用Cursors类

cursor=Cursors.hand;
而不是

cursor.current=Cursors.hand;
那太尴尬了。

这应该行得通

    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;
    }

仅在pictureBox上添加MouseMove事件并为此设置光标

private void pictureBox1\u MouseMove(对象发送方,MouseEventArgs e)
{
pictureBox1.Cursor=光标.Hand;

}
请为您的代码提供一些解释,以便其他人更容易理解。