如何进行始终最大化的窗口?

时间:2017-11-14 10:14:53

标签: .net visual-studio c++-cli

我知道我可以将属性'WindowState'更改为'Maximized'并将属性'MaximizeBox'更改为'false',因此我的应用程序开始最大化并且没有机会通过单击还原按钮来恢复我的窗口

但是我可以拖动窗口并向下移动,因此它会自动恢复。有没有办法普遍阻止恢复?

提前谢谢。

3 个答案:

答案 0 :(得分:0)

不了解通用阻止,但除了重置MaximizeBox和windowState属性之类的设置之外,您还可以使用以下代码阻止表单的恢复。在这里,您必须订阅表单

的LocationChanged事件

//在construcotr里面

 this.LocationChanged += Form1_LocationChanged;

//全局变量

 private Point desiredLocation;

并且在事件定义中,您将保持表单位置的持久性。

 void Form1_LocationChanged(object sender, EventArgs e)
        {
            if (this.Location != desiredLocation)
            {
                this.Location = desiredLocation;
            }
        } 

答案 1 :(得分:0)

查看此链接https://vaibhavgaikwad.wordpress.com/2006/06/05/creating-a-immovable-windows-form-in-c/并使用以下代码覆盖WndProc。

protected override void WndProc(ref Message message)
{    
  const int WM_SYSCOMMAND = 0x0112;
  const int SC_MOVE = 0xF010;

  switch(message.Msg)
  {
      case WM_SYSCOMMAND:
         int command = message.WParam.ToInt32() & 0xfff0;
         if (command == SC_MOVE)
            return;
         break;
  }

  base.WndProc(ref message);
}

答案 2 :(得分:0)

对于“表单属性”,在“设置表单以启动最大化”和“删除最大化”框和“最小化”框之后,有一个名为TopMost的设置将此设置为True。用户无法在应用程序之上最小化或移动其他应用程序。 This photo Highlights property to change