VB.NETでユーザーによるForm操作を制限する

VB.NETのプログラムの大半はFormを使用することになります。

Formは便利なのですが、エンドユーザーが様々な操作が可能になっています。

例えばサイズの変更であったり、「✕」閉じるボタンでフォームを閉じたりすることが出来るのですが、場合によってはプログラムの仕様に弊害を与え、ややこしい仕様を追加する必要が発生することがあります。

だったら最初からそのような機能を無効化したほうがスッキリした仕様でプログラミングとなります。

Formを仕様した場合に最低限していることを紹介しましょう。

コントロールボックスの最大化ボタンを無効化

MaximizeBoxプロパティの操作で無効化できます。

Loadイベントに装備したらいいでしょう。

Private Sub Form_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'Window最大化ボタン非表示
    Me.MaximizeBox = False
End Sub

Formのサイズ変更無効化

FormBorderStyleプロパティを設定すればサイズ変更できなくなります。

これも、Loadイベントで行った方がいいでしょう。

Private Sub FMTOKUI_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    'Windowサイズ変更禁止
    Me.FormBorderStyle = FormBorderStyle.FixedSingle
End Sub

コントロールボックスの「✕」閉じるボタンを無効化

フォームのCreateParamsプロパティをオーバーライドして「閉じる」ボタンを無効状態にし、システムメニューの「閉じる」も表示されず、「Alt」+「F4」キーも無効にします。

Protected Overrides ReadOnly Property CreateParams As CreateParams
    Get
        Dim c = MyBase.CreateParams

        c.ClassStyle = c.ClassStyle Or &H200
        Return c
    End Get
End Property

このコードをFormの「Class 」内にコーディングすれば「×」閉じるボタンを無効化できます。

VB.NETのお勉強の教材

VB.NET教材プログラミング初心者から中級者まで実戦に役立つ内容を分かりやすく解説しています。