【问题标题】:How to disable all resize possibilities for a window?如何禁用窗口的所有调整大小的可能性?
【发布时间】:2015-07-07 15:47:27
【问题描述】:

我有一行代码禁止调整应用程序窗口大小的所有可能性。

this.ResizeMode = ResizeMode.NoResize;

通过此操作,窗口右上角的最大化和最小化按钮不会显示,并且您无法通过双击菜单栏来最大化窗口。

我认为它有效,但后来我发现您可以通过双击菜单栏来最小化窗口。我很困惑这是可能的。有人回答这个问题,你不能通过双击最大化窗口,但可以最小化它?

【问题讨论】:

  • 最小化是指它进入底部的工具栏吗?
  • 最小化和最大化不同于调整大小。该行代码不应影响最小化和最大化行为。
  • @psoshmo,也许我描述的有点不对,双击窗口不要进入工具栏中,它只会调整为更小的尺寸,因为我的标准尺寸已最大化,但之后使窗口变小(不应允许)再次双击使窗口最大化是不可能的。

标签: c# resize window


【解决方案1】:

您可以通过 Resize 事件检测到更改并将其设置回其原始大小,从而轻松防止最小化。

注意:您将看到窗口短暂最小化,然后返回。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        this.Resize += new EventHandler(Form1_Resize);
    }

    void Form1_Resize(object sender, EventArgs e)
    {
        if (WindowState == FormWindowState.Minimized)
        {
            this.WindowState = FormWindowState.Normal;
        }

    }
}

【讨论】:

  • 不要订阅你自己的事件,而是重写onresize方法,否则别的东西会打断你的代码,或者之前运行。
  • @CarlSixsmith 您的评论没有意义。可以订阅 Resize 事件。这没有什么问题。
  • 在此处查看我的问题的答案 - 订阅您自己的事件而不是覆盖事件存在问题。[stackoverflow.com/questions/10975752/…
  • 我不太习惯 C#,但 Form 和 Window 之间没有区别。我可以使用这个代码吗?但我喜欢这个想法,如果我可以整合它,我认为它应该可以工作。
  • @FlorinM 如果您的应用程序是用 WinForms 编写的,那么 Window 就是一个 Form。如果您的应用程序是用 WPF 编写的,那么 Window 不是 Form!令人困惑。
猜你喜欢
  • 1970-01-01
  • 2018-11-08
  • 2011-03-17
  • 2014-11-23
  • 2018-08-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
相关资源
最近更新 更多