Form を作成する

★最近のプロジェクトでは[Windows][空のプロジェクト]が選択出来なくなりました。
これからは[Windows アプリケーション]を使うように誘導されているようです。

とは言え[空のプロジェクト]も捨てがたいのでプロジェクト一式を圧縮ファイルで提供します。
ファイル名 説明
MyForm.zip 空のプロジェクトの圧縮ファイル

C# で空のプロジェクトから Form(ウインドウ) を表示します。
C# の自動生成を使ってプロジェクトを作成すると、訳の解らない沢山のファイルが作成されます。
それに対して、空のプロジェクトから作成するとファイルも少なくすっきりしたプロジェクトを作成することが出来ます。
それと何よりも全て自分で作成するので「細部まで理解できる」ことが最大のメリットです。 (^◇^;)
但し、面倒な操作や設定が必要になり、初心者にはお勧め出来ません。
初心者の方は 自動生成を使って Form を作成 を参照して下さい。
[空のプロジェクト]も[自動生成で作成したプロジェクト]も基本的には同じ要領で作業を進めます。

前田稔の超初心者のプログラム入門

プロジェクトの設定

  1. Form(ウインドウ) を作成する方法は幾通りもあるのですが、今回は自動生成に準じて Form を継承した MyForm でウインドウを表示します。
  2. 最初に Console Mode と同じように、空のプロジェクト(CSForm)を作成します。
    Console Mode のプロジェクトを構築する Hello C# も合わせて参照して下さい。
    1. Visual Studio .NET(2005) を起動します。
    2. メニューの [ファイル][新規作成][プロジェクト] を選びます。
    3. プロジェクトの種類は [Visual C#][Windows] を選択します。
    4. テンプレートは [空のプロジェクト] を選択します。
    5. プロジェクトを格納する場所として、適当なフォルダーを設定して下さい。
    6. [ソリューションのディレクトリを作成] のチェックは外して下さい。
    7. プロジェクト名を [CSForm] として [OK] ボタンを押します。
  3. 下記のプログラムを CSForm.cs の名前でプロジェクトのフォルダーに格納して下さい。
    プロジェクト名とソースファイルの名前は違っていてもかまいませんが、一致している方が解りやすいでしょう。
    C# では、ソースファイルの拡張子は [cs] となります。
    ソリューションエクスプローラのプロジェクト名を右クリックして [追加][既存項目] からソースファイルを選択して下さい。
  4. CSForm.cs は Visual Studio の機能を使って、直接ソースプログラムを作成することも出来ます。
    [プロジェクト(P)][新しい項目の追加(W)][コードファイル]を選び、ファイル名を CSForm.cs にします。
    [追加]ボタンをクリックすると、空のファイルが作成されるので、下記のソースコードを貼り付けて下さい。
  5. ソリューション・エクスプローラーで「参照設定」を右クリックして「参照の追加」を選択します。
    System.dll, System.Windows.Forms.dll, System.Drawing.dll を追加します。
    当初は、拡張子(.dll)が表示されていたのですが、拡張子が無くなっているかも知れません。

  6. ソリューション・エクスプローラでプロジェクト名(CSForm)を右クリックして「プロパティ」を選択します。
    「出力の種類」を「Windowsアプリケーション」にします。
    またはメニューからプロジェクトのプロパティで「出力の種類」を「Windowsアプリケーション」にします。

  7. CSForm.cs をダブルクリックして、CSForm.cs[デザイン]でフォーム(ウインドウの枠)を確認して下さい。

    メニューの [デバッグ] から [デバッグ開始] または [デバッグなしで開始] を選択すればコンパイルされます。
    エラーが無ければ実行されて、ウインドウが表示されます。

ソースプログラム

  1. using は修飾しなくても Object Class を参照できるようにする設定です。
  2. new MyForm() で Form を継承した MyForm Object Class を生成します。
  3. Application.Run(mf) で MyForm に制御を渡し、メッセージループに入ります。
  4. 今回はウインドウを表示するだけなので、MyForm でやることはありません。
    何もしない Constructor が書かれているだけです。
    プログラムの終了時に MessageBox を表示してみました。
  5. ソースコード
    /*★ Form を継承した MyForm でウインドウを表示する    前田 稔 ★*/
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    // 今は独自のものが無い!
    public class MyForm : Form
    {
        public MyForm()
        {
        }
    }
    
    class form01
    {
        public static void Main()
        {
            MyForm mf = new MyForm();
            Application.Run(mf);
            MessageBox.Show("プログラムを終了します","Message Box");
        }
    }
    
  6. 今でも多くのソースは、次のようにコーディングされています。
    これでは括弧 { } のペアーが明白では無く、度々括弧の対が一致しないエラーに泣かされてきました。
    そこで私は、上記のように括弧の対が一目で解る方法を使う事にしています。
    using System;
    using System.Drawing;
    using System.Windows.Forms;
    
    public class MyForm : Form  {
        public MyForm()  {
    
        }
    }
    
    class form01  {
        public static void Main()  {
            MyForm mf = new MyForm();
            Application.Run(mf);
            MessageBox.Show("プログラムを終了します","Message Box");
        }
    }
    
  7. タイトルバーに "MyForm" と表示してみましょう。
    public class MyForm : Form
    {
        public MyForm()
        {
            this.Text = "MyForm";
        }
    }
    
  8. 完成したプログラムは、一部を除いて Command Line から実行することも出来ます。
    詳細は Windows を表示 を参照して下さい。
    C/C++ でも同様のプログラムを作成しています。
    「超初心者のプログラム入門(C/C++)/Form を生成して表示する」を参照して下さい。
    Form を生成して表示する

必要最小限のファイル

空のプロジェクトから作成した場合の、最低限必要なファイルは次のとおりです。
ファイル(フォルダー) 説明
csform.csproj プロジェクトファイル
csform.cs フォームのソースファイル
他のファイルは、再コンパイルすると自動的に作成されます。

超初心者のプログラム入門(C# Frame Work)