有没有办法Winform
在Resize End中调整窗口大小?
这意味着只要单击鼠标,我就会看到线条,并且只有当我离开鼠标(调整大小结束)时,窗口才会在屏幕上调整大小。
您将需要使用DrawReversibleFrame。需要禁用默认调整大小 (FormBorderStyle = FixedSingle)。
基本逻辑是——
MouseDown
- 开始跟踪
MouseMove
- 绘制可逆框架
MouseUp
- 停止绘制可逆框架。调整表格大小。
幸运的是,这篇 MSDN帖子为此提供了工作代码。我为您制作了一个工作样本。 http://www.mediafire.com/download/427g2h2ajm5z62m/ResizeFrame.zip
您将需要对此进行调整,以便仅当用户“MouseDown”靠近边框时才会调整表单大小。
如果只调整包含的控件大小就可以了(以及 Form 本身 - 立即) - 使用 Form 的ResizeEnd事件。
(我假设是这种情况,因为通常没有理由延迟表单的大小调整本身,而不是包含的控件,因为它们的调整大小可能是“昂贵的”。)
注意:“用户移动表单后也会生成 ResizeEnd 事件”。
尝试这个。
protected override void OnResizeBegin(EventArgs e) {
SuspendLayout();
base.OnResizeBegin(e);
}
protected override void OnResizeEnd(EventArgs e) {
ResumeLayout();
base.OnResizeEnd(e);
}