如何防止用户调整表单的大小?
我有一个表单,需要在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
请注意,将maximumsize
和minimumsize
设置为与此处显示的大小相同可防止调整窗体大小。
您可以删除用户界面来控制:
frmYour.MinimizeBox = False frmYour.MaximizeBox = False
将表单的最小和最大大小设置为相同的数字。 不要显示最小和最大button。
只需在Solution Explorer中更改这些设置。
MaximizeBox = False MinimizeBox = False
其他的东西如ControlBox,Locked和FormBorderStyle是额外的。
在vb.net中有一个选项,可以让你做到这一切。
用户无法重新resize或移动它,虽然还有其他的方法,我认为这是最好的。