如何防止用户调整表单的大小?

我有一个表单,需要在VB.net中最大化。 我不希望用户能够改变其大小或移动它。 我怎样才能做到这一点?

设置突出显示的属性。 将MaximimSize和MinimizeSize属性设置为相同的大小

在这里输入图像说明

//Set fixed border yourForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D //Set the state of your form to maximized yourForm.WindowState = FormWindowState.Maximized //Disable the minimize box and the maximize box yourForm.MinimizeBox = False yourForm.MaximizeBox = False 

将窗口开始样式设置为最大化。 然后,隐藏最小化和最大化button。

为了防止用户resize,请将FormBoderStyle从属性窗口或代码中设置为Fixed3D或FixedDialog

 frmYour.BorderStyle = System.WinForms.FormBorderStyle.Fixed3D 

并将WindowState属性设置为Maximized,将MaximizeBox和MinimizeBox属性设置为false。

为了防止用户移动,重写WndProc

 Protected Overrides Sub WndProc(ByRef m As Message) Const WM_NCLBUTTONDOWN As Integer = 161 Const WM_SYSCOMMAND As Integer = 274 Const HTCAPTION As Integer = 2 Const SC_MOVE As Integer = 61456 If (m.Msg = WM_SYSCOMMAND) And (m.WParam.ToInt32() = SC_MOVE) Then Return End If If (m.Msg = WM_NCLBUTTONDOWN) And (m.WParam.ToInt32() = HTCAPTION) Then Return End If MyBase.WndProc(m) End Sub 

向Form Load事件添加一些代码:

 me.maximumsize = new size(Width, Height) me.minimumsize = me.maximumsize me.maximizebox = false me.minimizebox = false 

例如:对于每个50像素的表格高度和宽度:

 me.maximumsize = new size(50, 50) me.minimumsize = me.maximumsize me.maximizebox = false me.minimizebox = false 

请注意,将maximumsizeminimumsize设置为与此处显示的大小相同可防止调整窗体大小。

您可以删除用户界面来控制:

 frmYour.MinimizeBox = False frmYour.MaximizeBox = False 

将表单的最小和最大大小设置为相同的数字。 不要显示最小和最大button。

只需在Solution Explorer中更改这些设置。

 MaximizeBox = False MinimizeBox = False 

其他的东西如ControlBox,Locked和FormBorderStyle是额外的。

在vb.net中有一个选项,可以让你做到这一切。

将<code> lock = false </ code>设置为<code> locked = true </ code>

用户无法重新resize或移动它,虽然还有其他的方法,我认为这是最好的。