Как предотвратить изменение размера формы пользователем? - PullRequest
50 голосов
/ 13 июля 2009

У меня есть форма, которую нужно развернуть в VB.net. Я не хочу, чтобы пользователь мог изменять его размер или перемещать его. Как я могу это сделать?

Ответы [ 11 ]

106 голосов
/ 20 июля 2012

Установите выделенные свойства. Установите свойства MaximimSize и MinimizeSize одинакового размера

enter image description here

4 голосов
/ 13 июля 2009
//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
3 голосов
/ 13 июля 2009

Чтобы пользователи не могли изменять размер, установите для 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
2 голосов
/ 13 июля 2009

Установить максимальный стиль запуска окна. Затем скройте кнопки свертывания и сворачивания.

1 голос
/ 07 апреля 2018

Установите для FormBorderStyle значение 'FixedDialog'

FixedDialog

1 голос
/ 24 декабря 2013

Добавьте некоторый код в событие загрузки формы:

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 на тот же размер, как показано здесь, предотвращает изменение размера формы.

1 голос
/ 13 июля 2009

Вы можете удалить пользовательский интерфейс для управления этим с помощью:

frmYour.MinimizeBox = False
frmYour.MaximizeBox = False
0 голосов
/ 14 июня 2019

Если вы хотите предотвратить изменение размера с помощью перетаскивания размерных ручек и с помощью кнопки «Развернуть» и с помощью двойного щелчка по тексту заголовка, вставьте следующий код в событие загрузки формы:

    Me.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedSingle ' Prevent size grips
    Me.MaximumSize = Me.Size ' Prevent maximize (also by doubleclick of header text)

Конечно, подойдут все варианты стиля форбордера, начиная с Фиксированного.

0 голосов
/ 03 апреля 2015

Просто измените эти настройки в обозревателе решений.

MaximizeBox = False
MinimizeBox = False 

Другие функции, такие как ControlBox, Locked и FormBorderStyle, являются дополнительными.

0 голосов
/ 05 января 2014

В vb.net есть опция, которая позволяет вам делать все это.

imagelock = false to locked = true">

Пользователь не сможет изменить размер формы или переместить ее, хотя есть и другие способы, которые, я думаю, являются лучшими.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...