在图片框悬停时启用/禁用 GIF [重复]

Posted

技术标签:

【中文标题】在图片框悬停时启用/禁用 GIF [重复]【英文标题】:Enable/Disable GIF in picturebox onhover [duplicate] 【发布时间】:2021-12-18 11:06:56 【问题描述】:

GIF 默认在表单加载时播放,但我希望它在表单加载时停止动画,所以我添加了 pictureBox1.Enabled = false; 但 MouseHover 或 MouseEnter 没有努力恢复 gif 播放。

【问题讨论】:

我很确定鼠标事件在具有Enabled = false; 的控件上被禁用......这就是事件没有触发的原因。 刚刚测试过了。当您设置Enabled = false 时,您将不会再收到任何鼠标事件。 Please do not upload images of code/errors when asking a question. 【参考方案1】:

将 gif 和 gif 都保存为资源中的图像。然后在表单加载时在图片框中设置 gif 图像,要显示 gif,请在鼠标悬停事件中将其加载到图片框中。同样,当鼠标离开时,将 gif 图像设置为图片框,如代码中所做的那样。

 public Form1()
            
                InitializeComponent();
                pictureBox1.Image = Properties.Resources.download__2_; //Gif Image
            
    
            private void pictureBox1_MouseHover(object sender, System.EventArgs e)
            
                pictureBox1.Image = Properties.Resources.fa9e27a7534060df383ab54354fcead3; //Actual Gif
            
    
            private void pictureBox1_MouseLeave(object sender, System.EventArgs e)
            
                pictureBox1.Image = Properties.Resources.download__2_; //Gif Image
            

【讨论】:

【参考方案2】:

您可以使用表单/容器的mouemove来检查图片框是否在光标下,然后激活它。

public Form1()

    InitializeComponent();
    pictureBox1.Enabled = false;


private void pictureBox1_MouseEnter(object sender, EventArgs e)

    //MessageBox.Show("enabled");


private void Form1_MouseMove(object sender, MouseEventArgs e)

    if (!pictureBox1.Enabled)
    
        pictureBox1.Enabled = (GetChildAtPoint(e.Location) == pictureBox1);
    

【讨论】:

以上是关于在图片框悬停时启用/禁用 GIF [重复]的主要内容,如果未能解决你的问题,请参考以下文章

引导工具提示应在更改选择框上启用

圆形输入文本框,但出现方形选择框[重复]

在jquery中启用和禁用文本字段[重复]

禁用与指针事件的链接,但保持活动:悬停事件[重复]

悬停时继续 CSS3 关键帧动画/悬停时停止重复

SVG - 多边形悬停无法正常工作[重复]