|
.NET TIPS Windowsフォームでサイズ変更の範囲を制限するには?デジタルアドバンテージ2004/12/03 |
![]() |
|
|
|
Windowsフォームは、標準機能として、そのフォームの右下端をドラッグすることで、サイズを自由に拡大・縮小することができる。この機能を有効にするには、フォームのFormBorderStyleプロパティに「Sizable」(System.Windows.Forms名前空間のFormBorderStyle列挙体の値)を設定すればよい(FormBorderStyleプロパティのデフォルト値が「Sizable」であるため、実際には何も変更する必要がない)。また逆に、このプロパティ値を「FixedSingle」などに設定変更すると、サイズ変更を不可能にすることもできる。
しかし、サイズ変更可能なままで、ある一定のサイズよりも小さくならないように(あるいは大きくならないように)制限したいという場合もあるだろう。
例えば次のサンプル・アプリケーションは、制限なくフォームのサイズを拡大・縮小できる通常のフォームを使用している。
![]() |
| サイズ変更可能なサンプル・アプリケーション |
| 制限なくフォームのサイズを拡大・縮小できるアプリケーションである。Windowsフォーム上にTextBoxコントロール、Buttonコントロール、ListBoxコントロール、StatusBarコントロールが配置されている。[登録]ボタンをクリックすると、TextBoxコントロールに入力した文字列がListBoxコントロールに追加される。 |
このアプリケーションは、フォームのサイズ変更範囲に制限(限界)がないため、次の画面のようにListBoxコントロールが見えなくなってしまうまでフォームを小さくすることができる。
![]() |
| 制限なくサイズ変更できるアプリケーション |
| ListBoxコントロールが見えなくなってしまうまでフォームを小さくすることができる。 |
もちろん上記画面のようなフォームの状態で、ユーザーがアプリケーションを利用することもあるかもしれない。しかし開発者がこのサイズで利用されることを想定していなければ、何かしら問題が起こる可能性がある。例えば、サイズ変更によって隠された部分に何らかのメッセージを表示していた場合、開発者の意図に反してユーザーにそのメッセージを見てもらえないということが起こるだろう。
また、コンピュータに詳しくない初心者ユーザーが誤ってこのようなサイズにフォームを変更してしまった場合、そのままのサイズの状態でアプリケーションを使って「マニュアルと画面表示が違う」などのクレームにつながってしまうかもしれない。このように、アプリケーションに無制限な自由度を与えると、逆にユーザビリティが低下してしまう可能性がある。
これらのような問題が発生する可能性があるケースでは、やはりフォーム・サイズの変更範囲に制限をかけておいた方が無難だろう。フォームのサイズ制限を行うには、次のプロパティを設定するだけである。
- フォームのMinimumSizeプロパティ(フォームの最小サイズ)
- フォームのMaximumSizeプロパティ(フォームの最大サイズ)
これらのプロパティには、Size構造体のオブジェクト(System.Drawing名前空間)を指定する。これらのプロパティ値はVisual Studio .NETでは、[プロパティ]ウィンドウから指定可能だが、コードで記述すれば次のようになる(thisやMeはフォームのインスタンスを参照している)。
// C# |
' VB.NET |
このコードによるサイズ制限機能をサンプル・アプリケーションに実装したのが、次の画面のアプリケーションである。
![]() |
| サイズの変更範囲に制限があるアプリケーション |
| カーソルのある位置までフォームのサイズを小さくしようとしているが、サイズが幅200ピクセル、高さ200ピクセルよりも小さくならない。 |
この画面のように、フォームのサイズ制限を実装したアプリケーションは、指定した最小サイズ〜最大サイズの範囲でしかフォームのサイズを変更することができない。もちろんサイズの制限は、最小サイズ/最大サイズのどちらか一方だけを指定することも可能だ。![]()
| カテゴリ:Windowsフォーム 処理対象:ウィンドウ 使用ライブラリ:Formクラス(System.Windows.Forms名前空間) 使用ライブラリ:FormBorderStyle列挙体(System.Windows.Forms名前空間) |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -





