C#のWindowsアプリケーションでは、各種コントロールの貼りつけなど操作の対象となるクライアント領域はフォーム となります。
    Visual Studioのデザイナーでは、新規アプリケーションの作成時には、form1が自動生成されます。

  
  新たにフォームを作る
  フォームを表示する
  フォームの表示位置を設定する
  フォームの背景色、背景イメージを設定す る
  フォームを閉じる
  フォーム間を連動する
  フォームを最小化・最大化する
  フォームを隠す
  フォーム枠を設定する
  フォームを強制的にアクティブにする


新たにフォームを作る
      新たなフォームは、デザイナのソリューションエクスプローラのApplicationノード上でマウスを右ク リックし、「追加」→「Windowsフォームの追加」で
   作ることができます。デフォルトでForm1のみが表示されている場合は、自動採番され、Form2が作られます。
          プログラム上から、フォームクラスのオブジェクトを生成するには、次のとおり行います。
   
          Form Form2=new Form();

    当然のことながら、Formオブジェクト名は一意である必要があります。

フォームを表示する
     フォームを表示するには、Showメソッド又はShowDialogメソッドを用います。
        Showメソッドでは、生成元のオブジェクトがそのまま残ります。
    例えば、
           private void Form1_Load(object sender, System.EventArgs e)
           {

              Form Form2=new Form();
              Form2.Show();
           }

    とした場合、Form1とForm2が同時 に表示され、同時にフォーム上のコントロールを操作することができます。

    一方、
ShowDialogメソッドは生成元のオブジェクトからフォーカスを奪うとともに、生成元 を閉じます。
           private void Form1_Load(object sender, System.EventArgs e)
           {

              Form Form2=new Form();
              Form2.ShowDialog();
           }

 
フォームの表示位置を設定する
 
  フォームの画面上表示位置を設定するには、通常、Form 表示時に最初に呼び出されるLoadメソッド上で設定します。
            private void Form1_Load(object sender, System.EventArgs e)
            {
                this.Left=100; //画面左端からの位置をピクセル単位で指定
                this.Top =150; //画面上端からの位置をピクセル単位で指定
                this.Width=500; //フォームの幅を
ピクセル単位で指定
                this.Height=300; //
フォームの高さをピクセル単位で指定
            }

        フォームを画面中央に表示するには、まず画面全体の大きさを取得します。
            int screenw,screenh;
            screenw=Screen.PrimaryScreen.WorkingArea.Width; //画面の幅
            screenh=Screen.PrimaryScreen.WorkingArea.Height; //画面の高さ

   次に中央位置を計算し、Left,Topプロパティに代入します。
            this.Left = (
screenw  - this.Width ) / 2 ;  //フォーム左端位置
            this.Top  = (
screenh  - this.Height) / 2 ; //フォーム上端位置


フォームの背景色、背景イメージを設定す る
   フォームの背景色、背景イメージは、フォームのプロパティで設定します。このプロパティは通常、Form 表示時に最初に
  呼び出されるLoadメソッド上で設定します。
 
          private void Form1_Load(object sender, System.EventArgs e)
            {
                this.BackColor=Color.White; //背景色を指定
                this.BackgroundImage =image; //背景イメージを指定
            }                      


フォームを閉じる
      フォームを閉じるには、Closeメソッドを実行します。
          this.Close();

      ShowDialogメソッドで開いたフォームの場合、Closeメソッドを実行してもフォームオブジェクトは捨てられないので、Dispose
  メソッドを併せて実行することを推奨します。(Disposeすることによって使用メモリが開放されます。)
            this.Dispose();



フォーム間を連動する
      複数のフォームは、親フォーム、子フォームの関係で連動させることができます。
   ここでは、Form1を親フォーム、Form2を子フォームとします。
       子フォーム上のボタンをクリックすると、親フォーム上のラベルにメッセージが表示されるプログラムを作ってみましょう。
  
       Form1上にツールボックスからラベルコントロールを配置します。すると、Form1のコードでは、次のとおり宣言文が記述されます。
         private System.Windows.Forms.Label label1;

   子フォームでのクリックイベントで親フォームのラベルをコントロールするためには、private宣言をpublic宣 言に変更します。
 
        public System.Windows.Forms.Label label1; 

        次にForm1のLoadイベントで、Form2を表示させます。この際に、親フォームForm1へのポインターを指定しておきます。

      private void Form1_Load(object sender, System.EventArgs e)
       {
          Form2 child = new Form2() ;  // 子フォームの生成
          child.pointer = this ; // 子フォーム内から親フォームを参照するためのポインターを指定
          child.Show() ;
         }

    次に子フォームの定義部に親フォームへのポインターを宣言します。 
         public class Form2 : System.Windows.Forms.Form
         {
            public Form1 pointer ;  // 親フォーム参照のためのポインタ

    これにより、先ほどのForm1でのポインター指定と連動させることができます。 

        最後に、子フォームのボタンクリックイベントで、親フォームのラベルにメッセージを表示させます。
         private void button1_Click(object sender, System.EventArgs e)
         {
            pointer.label1.Text = "子フォームからアクセスされました" ;  // 親フォーム Form1 を操作
            pointer.label1.Reflesh();  // ラベルコントロールの表示を更新
         }


フォームを最小化・最大化する
  
  フォーム右上の最小化ボタンを押すと、フォームの表示は 消え、タスクバーにアイコン付きタイトルが表示されます。
 
   これを、プログラムから実現するには、次の一行を入れま す。
      this.WindowState= FormWindowState.Minimized; //フォームを最小化

 
   最小化したときに、タスクバー表示を抑制するには、次のとおり指定します。               
            this.ShowInTaskbar=false;

    ただし、タスクバー表示をしない場合に、タ スクバークリックに変わるフォーム再表示手段を確保しておく必要がある
   場合があります。このような場合、タスクバーアイコンを表示させる方法があります。
    まず、デザイナーから、NotifyIconコントロールをフォーム上にドラッグ&ドロップします。
    次に以下の1行をフォームのLoadイベントの中に記述してください。
            this.notifyIcon1.Visible=true;

    
表示するアイコンの種類は、notifyIconのプロ パティで指定しておいてください。

          フォーム右上の最大化ボタンを押すと、フォームが画面上で最大表示されます。
    これを、プログラムから実現するには、最小化同様に次の一行を入れます。
      this.WindowState= FormWindowState.Maximized; //フォームを最大化

    
           上記の最小化で、最小化時にタスクバー表示を抑制し、notifyIconをかわりに表示させた場合の最大化方法について
    は、「タスクバーアイコンを使う」を参照してください。
   

          最小化、最大化、フォームサイズ変更など、フォームの大きさが変更された場合には、SizeChangedイベントが発生しま
         す。大きさ変更を検知し、何らかの処理を行いたい場合は、次のように記述してください。

      private void Form1_SizeChanged(object sender, System.EventArgs e)
          {
            //大きさ変更時の処理をここに記述
          }
     

フォームを隠す
    フォームをクローズせずに、フォームの表示 だけを消したい場合は、次のとおり記述します。
       this.Hide(); //フォームを隠す

     フォームを透明にして隠したい場合は、透明度プロパティOpacityを操作する方法もあります。
              this.Opacity=0.0  //透明度を0とする。半透明にするには、0,0〜1.0の範囲で透明度を指定する。

          
フォーム枠を設定する
        フォームの枠を変更することによって、アプリケーションの印象や機能を変えることができます。
   枠の種類は次の7種類が指定できます。
        同じアプリケーションで複数のフォームを利用する場合、ユーザビリティの確保は重要なテーマですので、フォーム枠はできるだけ
  統一すべきでしょう。

    
コー ド
機 能
this.FormBorderStyle=None;
 フォーム枠を消します。この場合、フォー ムアイコン、タイトル、最大最小クローズボタンは表示されません。
this.FormBorderStyle=FixedSingle;  フォーム アイコン、タイトル、最大最小クローズボタンが表示されますが、フォームのサイズは固定されます。
this.FormBorderStyle=Fixed3D;  FixedSingle表示の立体バー ジョン。
this.FormBorderStyle=FixedDialog;  フォームアイコンが表示されない以外は、 FixedSingleと同じです。
this.FormBorderStyle=Sizable;  デフォルトのフォーム枠です。みかけはFixedSingle と同じですが、フォームの右下にサイズ変更用グリップを付けて、フォームサイズの変更を可能にすることができます。
   this.SizeGripStyle=SizeGripStyle.Show;
this.FormBorderStyle=FixedToolWindow;  フォームアイコン、最大最小ボタンが表示 されません。フォームサイズの変更はできません。
this.FormBorderStyle=SizableToolWindow;  フォームアイコン、最大最小ボタンが表示 されません。フォームサイズの変更は可能です。


フォームを強制的にアクティブにする
    複数のフォームやマルチタスクにより、 フォーカスが他のフォームに移ってしまうおそれがある場合に、強制的に当該フォームをアクティブに
   するには、Activateメソッドを使います。

     this.Activate();