2016-10-26 50 views
-2

我有一个Winforms项目,其中最大化了窗体(this.WindowState = System.Windows.Forms.FormWindowState.Maximized)。 当用户通过边框拖动窗体来移动窗体时,窗体的大小将调整为我设置的大小(这不是最大的屏幕大小,因为我不确切知道为其设置属性的值在每个屏幕上最大化)。Winforms - 禁用当用户通过边框拖动窗体来移动窗体时,它调整窗体大小

我不想要这种行为。我只想让表单保持最大化。我已将FormBorderStyle设置为FixedDialog,以便用户无法通过拖动边框来调整窗体大小。我试图在各种事件中重新设置最大化的窗口状态,但它们似乎不起作用。

有谁知道如何解决这个问题?

+0

目前尚不清楚你的目标是什么。你能详细解释一下吗?你想阻止用户移动表单吗?你想防止调整大小?你想将最小尺寸设置为桌面尺寸? –

+0

我试图实现它的目标是阻止表单变得不最大化。这是如何实现的 - 通过设置最小尺寸阻止用户移动表单,我不在乎。 –

+0

[你如何防止移动窗口?](http://stackoverflow.com/questions/907830/how-do-you-prevent-a-windows-from-being-moved) –

回答

0

这可能做的伎俩为您

this.MinimumSize = this.MaximumSize; 
this.SizeGripStyle = SizeGripStyle.Hide; 

,你也可以尝试写onResize活动形式

this.WindowState = System.Windows.Forms.FormWindowState.Maximized 

更改FormBorderStyle为固定值之一:FixedSingle,Fixed3D ,FixedDialog或FixedToolBar

// Define the border style of the form to a dialog box. 
this.FormBorderStyle = FormBorderStyle.FixedDialog; 

// Set the MaximizeBox to false to remove the maximize box. 
this.MaximizeBox = false; 

// Set the MinimizeBox to false to remove the minimize box. 
this.MinimizeBox = false; 
+0

FormBorderStyle已经设置为FixedDialog,并添加了'this.MinimumSize = this.MaximumSize' - 行。不幸的是,这并没有帮助。 –

+0

你是否也可以尝试'SizeGripStyle.Hide'到我们的代码 –

+0

这并没有帮助我,因为这是一个关于移动窗体而导致它调整大小的问题,而不是关于用户能够通过拖动形成。 –

0

您试过

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; 
结合

this.WindowState = System.Windows.Forms.FormWindowState.Maximized 

当您设置此,你不能拖动或调整形式。

但是,您需要制作自己的关闭按钮或使用“Alt + F4”关闭窗口。