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