调整WinForm窗口大小仅在调整结束时进行

4
有没有一种方法可以在 调整大小结束 时调整 Winform 窗口的大小?
这意味着只要鼠标被点击,我就会看到线条,只有当我离开鼠标(调整大小结束)时,窗口才会在屏幕上调整大小。
3个回答

4
您需要使用DrawReversibleFrame。默认调整大小需要禁用(FormBorderStyle = FixedSingle)。
基本逻辑如下 -
MouseDown - 开始跟踪 MouseMove - 绘制可逆帧 MouseUp - 停止绘制可逆框架。调整窗体大小。
幸运的是,这个MSDN 帖子有工作代码。我为您制作了一个工作示例。http://www.mediafire.com/download/427g2h2ajm5z62m/ResizeFrame.zip 您需要调整此项,以便仅在用户接近边框时发生窗体调整大小。

2
如果只需要调整包含的控件大小(以及表单本身-立即),则使用表单的ResizeEnd事件。
(我假设这是情况,因为通常没有延迟表单本身的调整大小的理由,而是应该延迟包含控件的调整大小,因为它们的调整可能很“昂贵”。)
注意:“在用户移动表单后也会生成ResizeEnd事件”。


谢谢!非常适合节省程序的大小/位置。我一直困扰于每次调整大小/移动过程中都会发生这种情况。这个方法很漂亮地解决了问题。 - Nyerguds

0

试一下这个。

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接