WinForms - 调整大小事件后的操作

时间:2010-06-21 08:42:37

标签: winforms events controls .net-4.0 resize

是否可以在调整大小事件(用户控件)后执行特定操作,例如释放鼠标按钮时?我需要手动调整内部控件的大小,并且在事件的每次触发时执行它都会非常,嗯,低效......

3 个答案:

答案 0 :(得分:13)

只需使用ResizeEnd事件:

private void Form1_ResizeEnd(object sender, EventArgs e)
{
   // Your code here
}

来自MSDN:

  

当ResizeEnd事件被引发时   用户完成调整表单的大小,   通常通过拖动其中一个   边框或定位夹具位于   表格的右下角,   然后释放它。更多   有关调整大小的信息   操作

答案 1 :(得分:2)

你可以伪造一个像这样的本地ResizeEnd:

public class Dummy:UserControl
{

    private readonly Timer _tDelayedResize;

    public Dummy()
    {
        this.Resize += this_Resize;
        _tDelayedResize = new Timer();
        _tDelayedResize.Interval = 5;
        _tDelayedResize.Tick += this_ResizeEnd;
    }

    void this_Resize(object sender, EventArgs e)
    {
        _tDelayedResize.Stop();
        _tDelayedResize.Start();
    }

    void this_ResizeEnd(object sender, EventArgs e)
    {
        _tDelayedResize.Stop();

        //Do your ResizeEnd logic here
        //...
    }

}

可以修改间隔。它越高,最后一次调整大小事件后的延迟就越多。

答案 2 :(得分:0)

也许您可以使用SizeChanged事件。但我不知道在调整大小期间调用它的频率或时间。