【问题标题】:Resize a winform window only when resize end仅在调整大小结束时调整 Winform 窗口的大小
【发布时间】:2013-09-19 12:35:43
【问题描述】:

有没有办法在 Resize End 中调整 Winform 窗口的大小?

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

【问题讨论】:

    标签: c# winforms events resize window


    【解决方案1】:

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

    基本逻辑是 -

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

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

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

    【讨论】:

      【解决方案2】:

      如果可以只调整包含的控件的大小,那么(以及表单本身 - 立即) - 使用表单的 ResizeEnd 事件。

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

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

      【讨论】:

      • 谢谢!非常适合保存程序的大小/位置。在调整大小/移动过程中,每次滴答都会发生,这让我很困扰。这很好地解决了这个问题。
      【解决方案3】:

      试试这个。

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

      【讨论】:

        猜你喜欢
        • 2018-02-04
        • 2019-05-15
        • 1970-01-01
        • 1970-01-01
        • 2012-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多