Top > .NET & Control > Formクラス概要

Formクラス概要

プロパティ操作により

  • アプリケーションで使用するあらゆるウィンドウ(画面)形態をサポート
    • 一般的なウィンドウ
    • ツールを格納する標準的な境界線のないフローティング ウィンドウ
    • ダイアログ ボックスなどのモーダル ウィンドウ
    • 古いUIであるマルチ ドキュメント インターフェイス (MDI: Multiple Document Interface) ウィンドウ
  • 外観、サイズ、色、およびウィンドウ管理機能
    • タイトル バーに表示するウィンドウのキャプション
    • ウィンドウを表示するときのサイズと位置
  • フォーム上に配置されるすべてのコントロールの既定の前景色
  • 実行時
    • フォーム状態(最小化、最大化、通常)
    • フォームサイズの変更許可

プロパティの詳細は、主要プロパティの解説を参照

メソッド操作により

  • ShowDialogメソッドは、フォームをモーダル ダイアログ ボックスとして表示する
  • SetDesktopLocationメソッドは、デスクトップ上のフォームの位置を設定する

 

Formクラスの継承

継承図

メンバー一覧

以下のメンバー一覧は、Formクラスで実装されたもので、継承元のメンバーは含まれていない。

プロパティ メソッド イベント クラス内クラス(入れ子にされた型)
     

Formのイベント発生

フォームを起動したときのイベントの発生順

以下に、コンストラクタ完了後のイベント発生を示す。

  1. Move (Control)
  2. StyleChanged (Control)
  3. Layout (Control)
  4. Load
  5. Layout (Control)
  6. Shown

フォームが完全に表示されたタイミングで、初期化などの処理をしたい場合

まれに、フォームが表示されたタイミングで、何らかの処理を行いたい場合がある。通常は、Shownイベントハンドラで対応すればいい。(なお、このイベントを知らない人がいる。そのため・・・)

上記のイベント発生順の通り、Shownイベントが発生した後は、オペレーションされない限りなんのイベントも発生しない。

Loadイベントは、フォーム表示前に発生するため対応できない。そのため、LoadイベントハンドラでTimerを起動し、Timerのイベントハンドラに処理コードを書いて対処する方法もある。

Timerは、指定された周期でWindowsのWM_TIMERメッセージを発行するもの。これは、周期的に何らかの処理を行いたいと思うのが普通。上記の様な使い方は、直感的に理解しにくい。プログラムには、シナリオが重要で、違和感を覚えるコードは書かないことをお勧めする。

フォームを終了するときのイベント発生順

以下に、終了ボタンクリック後のイベント発生順を示す。

  1. FormClosing
  2. FormClosed

終了イベント時の状態を判断する

基本的に、終了時点ですべての必要な処理(データ保存など)を行っているはずなので「そのまま終了する」場合は問題がないと思われる。

問題は、データ未保存の場合で、終了の状態から判断してテンポラリ保存するなどの対策が必要なケースもある。もちろん、再開時には、テンポラリがあることをユーザーに知らせて、正式に保存する処理を行ったりする。

FormClosingイベント、およびFormClosedイベントの引数に「CloseReason」プロパティが含まれている。

CloseReason列挙体

メンバ名 説明
None フォームが閉じられる理由が定義されなかったか、確認できなかった。
WindowsShutDown OSによるシャットダウン
MdiFormClosing MDIフォームの親フォームが閉じられようとしている
UserClosing

ユーザーが、ユーザー インターフェイス (UI) を通じてフォームを閉じようとしている。

  • フォーム ウィンドウの [閉じる] ボタンを押す
  • ウィンドウのコントロール メニューの [閉じる] をクリックする
  • Alt キーと F4 キーを同時に押す
TaskManagerClosing Microsoft Windows タスク マネージャがアプリケーションを終了しようとしている
FormOwnerClosing 所有側のフォームが閉じられようとしている
ApplicationExitCall Application クラスの Exit メソッドが呼び出された

参考・関連

▲ページトップに戻る

inserted by FC2 system