C# 防止窗口在不抖动的情况下离开MDI?

C# 防止窗口在不抖动的情况下离开MDI?,c#,winforms,events,window,mdi,C#,Winforms,Events,Window,Mdi,在我的Form1的移动事件中,我检查它的位置,如果它不在用户的视图中,我将它移回。他移动完后是否会触发事件?因为move事件在移动时触发,所以我需要它在移动后触发。以下是我目前的代码: private void PublicTicker_Move(object sender, EventArgs e) { if (this.Left < 0) { this.Left = 0; } else if (this.Left >

在我的Form1的移动事件中,我检查它的位置,如果它不在用户的视图中,我将它移回。他移动完后是否会触发事件?因为move事件在移动时触发,所以我需要它在移动后触发。以下是我目前的代码:

    private void PublicTicker_Move(object sender, EventArgs e)
    {
        if (this.Left < 0)
        { this.Left = 0; }

        else if (this.Left > this.MdiParent.ClientRectangle.Width - this.Width)
        { this.Left = this.MdiParent.ClientRectangle.Width - this.Width; }

        if (this.Top < 3)
        { this.Top = 3; }

        else if (this.Top > this.MdiParent.ClientRectangle.Height - this.Height)
        { this.Top = this.MdiParent.ClientRectangle.Height - this.Height; }
    }
private void PublicTicker\u Move(对象发送方,事件参数e)
{
如果(此左<0)
{this.Left=0;}
else if(this.Left>this.MdiParent.ClientRectangle.Width-this.Width)
{this.Left=this.MdiParent.ClientRectangle.Width-this.Width;}
如果(本图顶部<3)
{this.Top=3;}
else if(this.Top>this.MdiParent.ClientRectangle.Height-this.Height)
{this.Top=this.MdiParent.ClientRectangle.Height-this.Height;}
}

尝试在ResizeEnd事件中执行移动校正例程。令人惊讶的是,它不仅在窗体调整大小时被触发,而且在用户移动窗体时也被触发

阅读更多信息。

可能的副本