DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

フォームのサイズを変更できないようにする

ここでは、フォームの大きさ(サイズ)を固定して、変更できないようにする方法を紹介します。

なおフォームのサイズを制限する方法は「フォームのサイズを制限する」で、フォームの最大化、最小化を防ぐ方法は「フォームを最大化、最小化できないようにする」で説明しています。

FormBorderStyleプロパティを変更する方法

フォームのFormBorderStyleプロパティをNoneかFixed...(FixedSingle、Fixed3D、FixedDialog、FixedToolWindow)にすると、フォームのサイズをユーザーが変更できないようになります。FormBorderStyleプロパティを変更すると、フォームの境界線やタイトルバーの外観が変わります。どのように変わるかは、「フォームの境界線スタイルを指定する」をご覧ください。

ただし、プログラムでフォームの大きさを変更することはできます。また、フォームを最大化、最小化することもできます。

以下の例では、フォーム(自分自身)のFormBorderStyleプロパティをFixedSingleにして、ユーザーがサイズを変更できないようにしています。

VB.NET
コードを隠すコードを選択
'ユーザーがサイズを変更できないようにする
'最大化、最小化はできる
Me.FormBorderStyle = FormBorderStyle.FixedSingle
C#
コードを隠すコードを選択
//ユーザーがサイズを変更できないようにする
//最大化、最小化はできる
this.FormBorderStyle = FormBorderStyle.FixedSingle;

MinimumSizeとMaximumSizeを同じにする方法

MinimumSizeプロパティでフォームの最小サイズを、MaximumSizeプロパティでフォームの最大サイズを設定することができますが、この両方を同じサイズにすれば、フォームのサイズを変更できなくなります。

この方法ではフォームを最大化しても大きさは変わりませんが、フォームを最小化すると普通にタスクバーに収まります。

以下の例では、フォーム(自分自身)のサイズを現在のサイズで固定するようにしています。

VB.NET
コードを隠すコードを選択
'最大サイズと最小サイズを現在のサイズに設定する
Me.MaximumSize = Me.Size
Me.MinimumSize = Me.Size
C#
コードを隠すコードを選択
//最大サイズと最小サイズを現在のサイズに設定する
this.MaximumSize = this.Size;
this.MinimumSize = this.Size;

その他の方法

フォームのサイズが変更された直後に、フォームのサイズを元に戻すという方法も考えられます。この方法は「フォームのサイズを制限する」の「サイズ変更後に修正する方法」と同じですので、詳しくはそちらをご覧ください。

また、フォームのサイズがユーザーによって変更されている時に送られてくるWM_SIZINGメッセージを使用するという方法もあります。この方法も「フォームのサイズを制限する」の「WM_SIZINGメッセージを利用する方法」と同じですので、詳しくはそちらをご覧ください。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。