动态调整图片框大小时的小问题(工具提示延迟,“闪烁”)

时间:2018-08-31 13:13:33

标签: c# winforms picturebox

请帮助您优雅地解决我的小项目中的几个问题。我正在用c#(WinForms)开发一个小程序,该程序使用图片框而不是按钮。我为它们添加了一个类似“动画”的小功能:当您将鼠标悬停在它们上面时,它们会减小大小,当鼠标移开时,它们会返回其原始状态。实际上,我在这里有两个问题:

  1. 如果将鼠标移至最边缘,则图片框将减小,但如果鼠标超出图片框的当前大小,则其尺寸将返回。等等。事实证明,这种“闪烁”。
  2. 更重要的是,我在这些图片框中附加了工具提示。并且,如果将鼠标移到图片框上,它将减小尺寸,并且不会调用工具提示。在不超出图片框的情况下,需要稍微移动光标,这样工具提示才会出现。而且这种行为是违反直觉的。

代码如下:

    private void IconReduce(PictureBox picturebox)
    {
        originalLocation = picturebox.Location;
        originalSize = picturebox.Size;
        picturebox.Location = new Point(picturebox.Location.X + 2, picturebox.Location.Y + 2);
        picturebox.Size = new Size(picturebox.Size.Width - 4, picturebox.Size.Height - 4);
    }

    private void IconNormal(PictureBox picturebox)
    {
        picturebox.Location = new Point(originalLocation.X, originalLocation.Y);
        picturebox.Size = new Size(originalSize.Width, originalSize.Height);
    }

    private void pb_MouseEnter(object sender, EventArgs e)
    {
        IconReduce(sender as PictureBox);
    }

    private void pb_MouseLeave(object sender, EventArgs e)
    {
        IconNormal(sender as PictureBox);
    }

0 个答案:

没有答案