仅在调整大小结束时调整winform窗口的大小

时间:2013-09-15 06:56:29

标签: c# winforms events resize window

有没有办法在调整大小结束中调整Winform窗口的大小?

这意味着只要点击鼠标就会看到线条,只有当我离开鼠标时(调整大小结束)窗口才会在屏幕上调整大小。

3 个答案:

答案 0 :(得分:2)

您需要使用DrawReversibleFrame。需要禁用默认大小调整(FormBorderStyle = FixedSingle)。

基本逻辑是 -

MouseDown - 开始跟踪
MouseMove - 绘制可逆框架
MouseUp - 停止绘制可逆帧。调整表格大小。

幸运的是,这个MSDN post有这个工作代码。我为你做了一个工作样本。 http://www.mediafire.com/download/427g2h2ajm5z62m/ResizeFrame.zip

您需要对此进行调整,以便仅在用户“MouseDown”时调整“表单大小调整”。靠近边境。

答案 1 :(得分:2)

如果只包含所包含的控件然后调整(以及表单本身 - 立即),请使用表单的ResizeEnd事件。

(我假设是这种情况,因为通常没有理由延迟Form的调整大小本身,而是包含控件',因为他们的调整大小可能是“昂贵的”。) < / p>

注意:“用户移动表单后也会生成ResizeEnd事件”。

答案 2 :(得分:0)

尝试一下。

protected override void OnResizeBegin(EventArgs e) {
            SuspendLayout();
            base.OnResizeBegin(e);
        }
        protected override void OnResizeEnd(EventArgs e) {
            ResumeLayout();
            base.OnResizeEnd(e);
        }