前回、Visual Studioをインストールしました。今回は、Windowsのデスクトップ上で動作する.NETアプリケーション-Windowsフォームの作り方を紹介します。また、プロジェクトを開始すると出来上がるひな形(テンプレート)ファイルの説明も簡単します。
※ 全くWindowsアプリケーションを作成したことのない方への記事となります。
※ VisualStudio2017で説明しています。

プロジェクト作成(ソリューション作成)

(1)Visual Studioを立ち上げ、[ファイル]-[新規作成]-[プロジェクト]を選択。 180210_1_newproject

(2)言語-[Windows クラッシックデスクトップ]-[Windows フォームアプリケーション]を選択。各項目を入力して「OK」ボタンを押します。
※ 言語はVisual Basicでも構いません。
180210_2_selectwindowsform

アプリケーションの名前やプログラムソースの保管先を選択することが出来ます。
他には.Net Frameworkのバージョンも選択できます。(今回は.Net 4.6.1)


Windowsフォームひな形(テンプレート)ファイルの説明

スポンサードリンク

プロジェクトの作成が終わると、以下のようなファイルが出来上がります。
[表示]-ソリューションエクスプローラを参照ください。
180210_3_solu_explorer

Properties・・・実行アプリケーションに関する設定ができます。ビルド方法やデバックの設定など。
参照・・・Microsoftやサードパーティから提供されているライブラリ(DLL)やCOMの参照が行えます。
App.config・・・アプリケーション内で使用する設定などを外部ファイルとして定義できます。
Form1.cs・・・Windowsフォームと呼ばれる画面クラス(ユーザインターフェース部分)です。初期は一つだけですが、後でいくつも足したり名前を変えることもできます。
Program.cs・・・プログラムのエントリーポイントMainが記述されているProgramクラスです。
(※ VB.NETは、自動でFormが呼び出されるように設定されているのでMainから呼び出したい場合は別途記述が必要)

プログラムの開始場所(Main)

Program.csファイルをダブルクリックして中身を確認してみましょう。
namespace HelloWindowsForm
{
    static class Program
    {
        // アプリケーションのメイン エントリ ポイントです。
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }
}
Application.EnableVisualStyles()は、立体感がある画面にするものです。SetCompatibleTextRenderingDefault(false)も同じく画面描画(GDI)についてです。(ここでは深く触れません)

Mainメソッド内の肝は、Application.Run(new Form1())です。Application.Runを呼び出すことによって、フォームのウィンドウハンドルというものが作成・登録され、ソースの見えないところでWindowメッセージプロシージャがループされます。結果的に、Form1の画面が表示されます。


フォームにコントロールを張り付ける

Form.csをダブルクリックすると何もないフォームデザイナが表示すると思います。そこにツールボックスにある「Button」と「TextBox」をドラッグ&ドロップで貼り付けます。 180210_4_toolbox

180210_5_form
こんな感じにしてみます。
フォームデザイナで追加したButtonを選択して、プロパティシートで表示名(Text)を変えてみましょう。
180210_6_formproperty
ボタンの表示名が変わったと思います。


イベント内に処理を記述

次にボタンがクリックされたときに、動作する処理(プログラム)を書いていきたいと思います。
デザイナのbutton1をダブルクリックするか、プロパティの雷アイコン(イベント)を押してClickイベントをダブルクリックします。
180210_7_addevent

Form1.csにイベントのメソッドが追加されます。そこに、以下のようにプログラムを足してみます。
namespace HelloWindowsForm
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.textBox1.Text = "Hello WinForm world!!";
        }
    }
}

※ Form()コンストラクタ内にあるInitializeComponent();は、画面のデザイン部分をコールしています。また、Form1のデザインした内容や追加したイベントは、隠しファイルの「Form1.Designer.cs」に自動的にプログラムソースが追加されていきます。

デバック実行

作成したアプリケーションを動かしてみます。
20171123_9_kaishiを押し、実際にボタンを押してみます。

180210_8_execute

何も入力の無いTextBox1に、値が表示されればOKです。

イベントドリブン型であるWindowsアプリケーションは、イベントに対して処理プログラムを書いて行くという流れで作成していきます。

では、よいツールやシステムを作ってくださいね(^-^)ノシ