5

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

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

诀窍是将pictureBox 设置为sizeMode=zoom。然后当鼠标悬停在“imageButton”上时做两件事:将图片框的大小更改为稍大+将光标更改为手

所以我会像使用asp.net一样获得一种鼠标悬停效果

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

编辑 :

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

4

3 回答 3

14

这应该工作

    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;
    }
于 2013-09-23T08:26:55.877 回答
1

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

cursor=Cursors.hand;

而不是

cursor.current=Cursors.hand;

那很尴尬..

于 2013-09-22T22:26:24.610 回答
1

只在 pictureBox 上添加 MouseMove 事件并为此设置一个 Cursor

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

于 2017-01-22T16:05:24.183 回答