如何使用图片框从一个图像执行2状态按钮

时间:2018-08-01 10:10:07

标签: c# picturebox drawimage drawrectangle

我正在学习C#,并且正在尝试使用图片框创建自定义按钮。 我在项目资源PNG with 2-state images上插入了一张图片。

当图像以正常状态显示时,它显示PNG文件内的顶部图像,当鼠标进入图片框区域时,它应该在同一PNG上显示底部图像,但是我做错了,因为它显然是错误的保持静态。

我通过调用我创建的方法来初始化构造函数-BotOK_Normal();显示按钮的正常状态,代码如下所示。

private void BotOK_Normal()
    {
     private Image BotOK = Resources.BotOK;
     Graphics desenhador = Graphics.FromImage(BotOK);
     desenhador.DrawImage(BotOK, 
                          new Rectangle(0, 0, 90, 36), 
                          new Rectangle(0, 0, 90, 36), 
                          GraphicsUnit.Pixel);
     PB_BotOK.BackgroundImage = BotOK;
    }

和方法BotOK_Hover()稍有变化,因为它必须从不同的坐标拾取底部图像

private void BotOK_Hover()
    {
        private Image BotOK = Resources.BotOK;
        Graphics desenhador = Graphics.FromImage(BotOK);
        desenhador.DrawImage(BotOK, 
                             new Rectangle(0, 0, 90, 36), 
                             new Rectangle(0, 36, 90, 36), //y changed
                             GraphicsUnit.Pixel);
        PB_BotOK.BackgroundImage = BotOK;
    }

我创建了2个与图片框相关的事件。

private void PB_BotOK_MouseEnter(object sender, EventArgs e)
    {
        BotOK_Hover();
    }

private void PB_BotOK_MouseLeave(object sender, EventArgs e)
    {
        BotOK_Normal();
    }

当我将鼠标悬停在图片框内时,什么都没有改变,我在做什么错了?

在此先感谢您为我提供的任何帮助。

0 个答案:

没有答案