拖动面板会留下它的“幽灵”副本

本文关键字:幽灵 副本 拖动 | 更新日期: 2023-09-27 18:33:56

我使用以下代码拖动面板

public void researchMenu_MouseisDown(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Left)
        {
            dragging = true;
            x = e.X;
            y = e.Y;
        }
    }
    public void researchMenu_MouseisUp(object sender, MouseEventArgs e)
    {
        dragging = false;
    }
    public void researchMenu_MouseMoves(object sender, MouseEventArgs e)
    {
        if (dragging)
        {
            this.researchMenu.Location = new Point(e.X + this.researchMenu.Left - x, e.Y + this.researchMenu.Top - y);
        }

    }

它留下了自己的"幽灵"副本,就像应用程序在Windows XP中崩溃一样。

这是它正在做的事情的一个例子。

老实说,我不知道如何解决它,我认为可能是组框是透明的,但我将它们更改为不透明的颜色,并且仍然留下了"幽灵"。

拖动面板会留下它的“幽灵”副本

如果没有关于如何绘制/动画的更多详细信息,看起来父级在拖动过程中没有更新。尝试在researchMenu_MouseMoves事件期间为父级添加某种重绘或绘制调用。