将光标更改为pictureBox

时间:2013-09-22 22:06:52

标签: c# winforms mouseevent mouseenter mousehover

我正试图在winforms应用程序中实现一个图像按钮,因为我可以......使用asp.net时很容易 问题似乎是(我怀疑)当鼠标在图片框内的图像上方时 它没有响应或没有触发mouseEnter事件

看起来如果我的图片小于pictureBox大小,它会接受触发事件的原因,但是在pictureBox中的图像上它不会吗?

诀窍是将pictureBox设置为sizeMode = zoom。当鼠标悬停在“imageButton”上时再做两件事:将PictureBox的大小更大一点+将光标更改为手

所以我会用asp.net

获得一种鼠标效果

有没有人有这个问题? 起初我试过mouseHover,然后我认为输入会做得更好,因为它只需要鼠标通过图片框的边框...进入和悬停事件对我来说都不起作用...

修改:

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

3 个答案:

答案 0 :(得分:12)

这应该有效

    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 :(得分:1)

似乎我应该更好地了解如何使用Cursors类。

cursor=Cursors.hand;

而不是

cursor.current=Cursors.hand;

令人尴尬..

答案 2 :(得分:1)

仅在pictureBox上添加MouseMove事件并为此

设置Cursor

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