web-dev-qa-db-ja.com

ユーザーによるフォームのサイズ変更を防ぐにはどうすればよいですか?

VB.netで最大化する必要があるフォームがあります。ユーザーがサイズを変更したり、移動したりできないようにします。 どうすればいいですか?

ハイライトされたプロパティを設定します。 MaximimSizeプロパティとMinimizeSizeプロパティを同じサイズに設定します

enter image description here

110
Jim Lahman
//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
4
Francis B.

ユーザーがサイズ変更できないようにするには、プロパティウィンドウまたはコードから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
3
amazedsaint

ウィンドウの開始スタイルを最大化に設定します。次に、最小化ボタンと最大化ボタンを非表示にします。

2
DCNYAM

以下を使用して、UIを削除してこれを制御できます。

frmYour.MinimizeBox = False
frmYour.MaximizeBox = False
1
Rowland Shaw

FormBorderStyleを 'FixedDialog'に設定します

FixedDialog

1
TheOddPerson

フォームロードイベントにいくつかのコードを追加します。

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をここに示すサイズと同じサイズに設定すると、フォームのサイズ変更ができなくなることに注意してください。

1
Deep

Sizegripsをドラッグして最大化ボタンを使用し、ヘッダーテキストをダブルクリックして最大化することでサイズ変更を防止する場合は、フォームのロードイベントに次のコードを挿入します。

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

もちろん、Fixedで始まるformborderstyleのすべての選択が可能です。

0
Evert