.NET & Control > Form主要プロパティ(1)
のぶ亭『プログラミングの相談窓口』 … 様々なプログラミング問題を個別対応致します |
Form主要プロパティ(1)
- Formクラスのプロパティ ウィンドウ
- Formクラスの主要プロパティについて
- 変更されたプロパティ
プロパティ ウィンドウには、すべてのプロパティが表示されているわけではありません。また、Formクラス以外(継承元)も含まれているこも意識してください。
フォームのキャプション バー上に
「システムメニューボックス」を表示するか/しないかの設定
イメージ | プロパティ |
ControlBox = true | |
ControlBox = false |
フォームのキャプション バー上に
「ヘルプ」ボタンを付けるか/付けないかの設定
イメージ | プロパティ |
HelpButton= true ←こちらはデザイン時のイメージ |
|
HelpButton= false ←こちらが実行時のイメージ |
プロパティ HelpButton
ただし、条件があって[ControlBox]プロパティはTrue、[MaximizeBox]と[MinimizeBox]のプロパティが共にFalseに設定されている場合に限り表示される。それ以外の組み合わせでは表示されない。従って、一般的な画面ではなく「ダイアログ」で使用することになると思われる。
フォームのアイコンを変更
デフォルトはが設定されている。
プロパティ Iconにイメージに変更すると、となる。タスクバーのアイコンもここで設定したアイコンになる。
FormをMDI(親フォーム)に設定する
フォームを、マルチ ドキュメント インターフェイス (MDI: Multiple Document Interface) に設定するか/しないかの設定。つまり、TrueはMDIで、FalseはSDI、初期値ははSDIに設定される。(SDIのSは、Singleの意味)
IsMdiContainer=true
MDIとは、フォームの親子関係を作成し、親フォーム内に複数の子フォームを持つUI(User Interface)である。親フォームは、子フォームのコンテナとなり、子フォームは親フォームの領域からはみ出すことはできない。昔のUIでもある。
FormをMDI(子フォーム)に設定する
フォームをMDIの子フォームとするには[MdiParent]プロパティに、MDI 親フォームのオブジェクトを設定する。
プロパティ MainMenuStrip
VSドキュメントには「フォームの主要メニューのコンテナを取得または設定します。 」と書かれている。
下図は、[MenuStrip]コントロールを3つ作成して、[MainMenuStrip]プロパティに"menuStrip2"を設定して実行したイメージ。
複数メニューを用意して、このプロパティで主要メニューを切り替えてくれるわけではない。
また、[MenuStrip]コントロールそれぞれに、イベントハンドラを用意して[MainMenuStrip]プロパティとの関係を調べてみたが、この設定とは無関係にすべての[MenuStrip]コントロールのイベントハンドラが有効だった。つまり、選択するとイベントハンドラが呼び出される。
<複雑なメニュー構成を設計することがなかったため、気が付かなかったテーマ?>
プロパティ MaximizeBox、MinimizeBox
[MaximizeBox]プロパティは、キャプション バーの右上にある[最大化ボタン]の有効/無効を設定する。
[MinimizeBox]プロパティ、キャプション バーの右上にある[最小化ボタン]の有効/無効を設定する。
[MaximizeBox]プロパティ=False、[MinimizeBox]プロパティ= True のイメージ (右は実行時)
[MaximizeBox]プロパティ=True、[MinimizeBox]プロパティ= Falseのイメージ (右は実行時)
[MaximizeBox]プロパティ=False、[MinimizeBox]プロパティ= Falseのイメージ (右は実行時)
プロパティ Opacity
フォームの不透明度の割合を%で設定 (数値入力のみの場合”%"は自動付加される)
入力範囲は、0%~100%
20%に設定したイメージ
50%に設定したイメージ
80%に設定したイメージ
プロパティ ShowIcon
キャプション バーにアイコンを表示するか/しないかを設定
True時のイメージ(デザイン時)
False時のイメージ(デザイン時)
実行すると、タスク バーのアイコンも表示されなくなる
プロパティ ShowInTaskbar
このフォームのアイコンをタスクバーに表示するか/しないかを設定
Trueで、タスクバーにアイコンが表示される
Falseは、タスクバーにアイコンが表示されなくなる
これは、複数フォームを同時に表示する場合、1つのアプリケーションで複数のアイコンがタスクバーに表示されることを防ぐためのものである。
メインフォームのアイコンのに有効にしておき、他のフォームは無効にすることで、タスクバーに無用なアイコンが表示されなくなる。
プロパティ SizeGripStyle
VSドキュメントでは「フォームの右下隅に表示するサイズ変更グリップのスタイルを取得または設定します」とあり、設定内容は以下のように記述されている。
Auto | サイズ変更グリップは、必要なときに自動的に表示されます。 |
Show | サイズ変更グリップは常にフォーム上に表示されます。 |
Hide | サイズ変更グリップは表示されません。 |
しかし、Hideに設定しても「マウス カーソル」が表示されるので、このプロパティの意味(目的)が分からない。
Reflector Toolを使ってコードを見たところ、対応が分かりました。
まず、[FormBorderStyle]プロパティが、SizableまたはSizableToolWindow以外は、[SizeGripStyle]プロパティに何を設定しても、結果は Hide と同じ。
Auto の場合、GetState(0x20)の結果が True は、Show と同じ。False は、 Hide と同じ。
従って、自動的という言葉で、自動的に変更グリップのスタイルが変わるのかと期待したが、全く関係なかった。また、GetState(0x20)は、STATE_MODAL = 0x20; とすれば、モーダルかどうかを判定していることになる。
プロパティ TopMost
フォームを最上位フォームとして表示するか/しないかを設定
TransparencyKey
フォームの透明領域を色で設定する。
以下の例は、[BackColor]プロパティ="Control"と[TransparencyKey]プロパティ="Control"を同じ色に設定した。
下図は、デザイン時
下図は、実行時で、BackColor色の領域が透明になっている
[FormBorderStyle]プロパティ=None に設定すると下図のようになる
変更されたプロパティ
プロパティが変更されているかどうかは、プロパティ ウィンドウの設定値が太字書体で表示されているかどうかで判断できる。デフォルト値に場合は、標準書体で表示されるためこれで判断することができる。
初期値が分からない場合は、プロパティ名にマウスを持ってきて右ボタン-サブメニューから「リセット」を選択すると、プロパティの初期値に戻すことができる。