方法: コマンド ラインから Windows フォーム アプリケーションを作成する

次の手順では、コマンドラインから Windows フォーム アプリケーションを作成して実行するために完了する必要のある基本的な手順について説明します。 Visual Studio では、これらの手順に対する広範なサポートが用意されています。 「チュートリアル: WPF での Windows フォーム コントロールのホスト」も参照してください。

手順

フォームを作成するには

  1. 空のコード ファイルに、次の Imports または using ステートメントを入力します。

    using System;
    using System.ComponentModel;
    using System.Drawing;
    using System.Windows.Forms;
    
    Imports System.ComponentModel
    Imports System.Drawing
    Imports System.Windows.Forms
    
  2. フォーム クラスから継承する Form1 という名前のクラスを宣言します。

    public class Form1 : Form
    
    Public Class Form1
        Inherits Form
    
  3. Form1 にパラメーターなしのコンストラクターを作成します。

    後続の手順で、コンストラクターにさらにコードを追加します。

    public Form1() {}
    
    Public Sub New()
    
    End Sub
    
  4. Main メソッドをクラスに追加します。

    1. STAThreadAttribute を C# Main メソッドに適用し、Windows フォーム アプリケーションがシングルスレッド アパートメントであることを指定します。 (Visual Basic で開発された Windows フォームでは既定でシングルスレッド アパートメント モデルが使用されるため、Visual Basic では、この属性は不要です)

    2. EnableVisualStyles を呼び出し、オペレーティング システムのスタイルをアプリケーションに適用します。

    3. フォームのインスタンスを作成して実行します。

    [STAThread]
    public static void Main()
    {
      Application.EnableVisualStyles();
      Application.Run(new Form1());
    }
    
    
        Public Shared Sub Main()
            Application.EnableVisualStyles()
            Application.Run(New Form1())
    
        End Sub
    End Class
    

アプリケーションをコンパイルして実行するには

  1. .NET Framework コマンド プロンプトで、Form1 クラスを作成したディレクトリに移動します。

  2. フォームをコンパイルします。

    • C# を使用している場合、「csc form1.cs」と入力します。

      -or-

    • Visual Basic を使用している場合、「vbc form1.vb」と入力します。

  3. コマンド プロンプトに Form1.exe を入力します。

コントロールの追加とイベントの処理

前の手順は、コンパイルして実行する基本的な Windows フォームを作成する方法を示しました。 次の手順では、コントロールを作成してフォームに追加し、コントロールのイベントを処理する方法を示します。 Windows フォームに追加できるコントロールの詳細については、「Windows フォーム コントロール」を参照してください。

Windows フォーム アプリケーションを作成する方法を理解するだけでなく、イベント ベースのプログラミングとユーザー入力を処理する方法を理解する必要があります。 詳細については、「Windows フォーム内でのイベント ハンドラーの作成」と「ユーザー入力の処理」を参照してください。

ボタン コントロールを宣言して、クリック イベントを処理するには

  1. button1 という名前のボタン コントロールを宣言します。

  2. コンストラクターでボタンを作成し、SizeLocation、および Text の各プロパティを設定します。

  3. フォームにボタンを追加します。

    次のコード例は、ボタン コントロールを宣言する方法を示します。

    public Button button1;
    public Form1()
    {
        button1 = new Button();
        button1.Size = new Size(40, 40);
        button1.Location = new Point(30, 30);
        button1.Text = "Click me";
        this.Controls.Add(button1);
        button1.Click += new EventHandler(button1_Click);
    }
    
    Public WithEvents button1 As Button
    
    Public Sub New()
        button1 = New Button()
        button1.Size = New Size(40, 40)
        button1.Location = New Point(30, 30)
        button1.Text = "Click me"
        Me.Controls.Add(button1)
       
    End Sub
    
  4. ボタンで Click イベントを処理するメソッドを作成します。

  5. クリック イベント ハンドラーで、メッセージ "Hello World" と共に MessageBox を表示します。

    次のコード例は、ボタン コントロールのクリック イベントを処理する方法を示します。

    private void button1_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Hello World");
    }
    
    Private Sub button1_Click(ByVal sender As Object, _
        ByVal e As EventArgs) Handles button1.Click
        MessageBox.Show("Hello World")
    End Sub
    
  6. Click イベントを作成したメソッドに関連付けます。

    次のコード例は、イベントをメソッドに関連付ける方法を示します。

    button1.Click += new EventHandler(button1_Click);
    
    Private Sub button1_Click(ByVal sender As Object, _
        ByVal e As EventArgs) Handles button1.Click
    
  7. 前の手順で説明したように、アプリケーションをコンパイルして実行します。

次のコード例は、前の手順の完全な例です。

using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;

namespace FormWithButton
{
    public class Form1 : Form
    {
        public Button button1;
        public Form1()
        {
            button1 = new Button();
            button1.Size = new Size(40, 40);
            button1.Location = new Point(30, 30);
            button1.Text = "Click me";
            this.Controls.Add(button1);
            button1.Click += new EventHandler(button1_Click);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Hello World");
        }
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.Run(new Form1());
        }
    }
}
Imports System.ComponentModel
Imports System.Drawing
Imports System.Windows.Forms

Public Class Form1
    Inherits Form
    Public WithEvents button1 As Button

    Public Sub New()
        button1 = New Button()
        button1.Size = New Size(40, 40)
        button1.Location = New Point(30, 30)
        button1.Text = "Click me"
        Me.Controls.Add(button1)
       
    End Sub
   
    Private Sub button1_Click(ByVal sender As Object, _
        ByVal e As EventArgs) Handles button1.Click
        MessageBox.Show("Hello World")
    End Sub

    <STAThread()> _
    Shared Sub Main()
        Application.EnableVisualStyles()
        Application.Run(New Form1())

    End Sub
End Class

関連項目