【问题标题】:Prevent winforms application resizing防止 winforms 应用程序调整大小
【发布时间】:2013-11-28 11:57:47
【问题描述】:

我正在开发一个 winforms 应用程序。我的问题是,我有一个名为 Frmaddpackage 的 mdi 子表单,其大小为 892 * 339。但是如果我在全屏时打开此表单,那么我打开我的表单 Frmaddpackage ,它将显示为全屏。

我怎样才能删除它,以便 Frmaddpackage 始终具有固定大小。我已将 formborder 样式设置为固定单个。

1.这是实际屏幕尺寸。

但是,如果我打开任何表单,然后我打开我的表单,大小就会增加。

【问题讨论】:

  • 你的父窗口呢? formborder 的样式是固定的吗?
  • 您希望您的子窗口窗体在外部打开还是在主窗体内部打开?
  • 所有表单都是mdi子表单。我想要的是在mdi parent内打开子表单。大小始终固定。mdi父窗口formborder样式很大
  • which has a size of 892 * 339 - 不要这样做。具有较大屏幕分辨率的人会发现您的应用程序是左上角或其屏幕上的一个小盒子。即使使用 winforms,您也可以做得更好。否则使用 WPF,默认情况下与分辨率无关。

标签: c# winforms


【解决方案1】:

一旦显示表单,您可以尝试设置表单的 WindowState 属性,这可能会解决问题。

Frmaddpackage.WindowState = FormWindowState.Normal;

【讨论】:

  • 您是否也可以尝试将 WindowState 设置为最小化,然后设置为正常
【解决方案2】:

您可以将最大表单大小设置为等于 size。

【讨论】:

    【解决方案3】:

    试试

       this.WindowState = FormWindowState.Normal;
       this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
       this.ClientSize = new System.Drawing.Size("Set the Current Size");\
       this.MaximumSize = new System.Drawing.Size("Set the Current Size");
    

    这样表单就不会最大化...我的意思是将当前大小设置为最大大小

    【讨论】:

      【解决方案4】:

      在 InitializeComponents() 或 Form.Load() 上添加此代码

      this.MinimumSize = this.Size; //Minimum size is current size
      this.MaximumSize = this.Size; //Maximum size is current size so window can't be smaller than current size and can't be bigger!
      

      您可以选择将 FormBorderStyle 更改为固定,如果您想禁用最大化的可能性,请使用:

      this.MaximalizeBox = false; //Disabling resizing may cause bugs with maximalization of window.
      

      抱歉我的英语不好,但代码应该可以正常工作(我在我的应用程序中使用它)

      【讨论】:

      • 如果您愿意,可以使用窗口设计器中的 Anchor 自动调整控件的大小。
      猜你喜欢
      • 1970-01-01
      • 2015-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多