2025年4月28日月曜日

Visual Studio C#でGUIアプリケーション(Windows FormsまたはWPF)のコードを1つのソースファイルで記述し、実行する方法

 承知いたしました。Visual Studio C#でGUIアプリケーション(Windows FormsまたはWPF)のコードを1つのソースファイルで記述し、実行する方法をご説明しますね。

Windows Forms アプリケーションの場合

Windows Formsアプリケーションでは、通常、フォームのデザイン情報(.Designer.csファイル)とロジック(.csファイル)が分離されていますが、以下の手順で1つの.csファイルにまとめて記述できます。

  1. 新しいプロジェクトの作成: Visual Studioを起動し、「新しいプロジェクトの作成」を選択します。
  2. 「空のプロジェクト」の選択: プロジェクトテンプレートの一覧から「空のプロジェクト」を選択し、「次へ」をクリックします。
  3. プロジェクト名と場所の設定: プロジェクト名と保存場所を設定し、「作成」をクリックします。
  4. 新しい項目の追加: ソリューションエクスプローラーでプロジェクト名を右クリックし、「追加」→「新しい項目」を選択します。
  5. 「クラス」の選択: 「新しい項目の追加」ダイアログで、「クラス」を選択し、ファイル名を例えば SingleForm.cs と入力して「追加」をクリックします。
  6. コードの記述: SingleForm.cs ファイルに以下のコードを記述します。
C#
using System;
using System.Drawing;
using System.Windows.Forms;

public class SingleForm : Form
{
    private Button myButton;
    private Label myLabel;

    public SingleForm()
    {
        // フォームの基本設定
        this.Text = "Single File WinForms App";
        this.ClientSize = new Size(300, 200);

        // ラベルの作成と設定
        myLabel = new Label();
        myLabel.Text = "Hello World!";
        myLabel.Location = new Point(20, 20);
        myLabel.AutoSize = true;
        this.Controls.Add(myLabel);

        // ボタンの作成と設定
        myButton = new Button();
        myButton.Text = "Click Me";
        myButton.Location = new Point(20, 60);
        myButton.Click += MyButtonClick;
        this.Controls.Add(myButton);
    }

    private void MyButtonClick(object sender, EventArgs e)
    {
        myLabel.Text = "Button Clicked!";
    }

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new SingleForm());
    }
}
  1. 実行: Visual Studioのメニューから「デバッグ」→「デバッグの開始」を選択するか、F5キーを押してアプリケーションを実行します。

このコードでは、SingleForm クラスが Form クラスを継承し、フォームのUI要素(ラベルとボタン)の作成、配置、イベント処理をすべて1つのファイル内で定義しています。Main メソッドはアプリケーションのエントリポイントとなり、フォームのインスタンスを作成して実行します。

WPF アプリケーションの場合

WPFアプリケーションの場合も、通常はXAMLファイルでUIを定義し、C#ファイルでロジックを記述しますが、以下の手順で1つの.csファイルにまとめることができます。

  1. 新しいプロジェクトの作成: Visual Studioを起動し、「新しいプロジェクトの作成」を選択します。
  2. 「空のプロジェクト」の選択: プロジェクトテンプレートの一覧から「空のプロジェクト」を選択し、「次へ」をクリックします。
  3. プロジェクト名と場所の設定: プロジェクト名と保存場所を設定し、「作成」をクリックします。
  4. 必要なアセンブリ参照の追加: ソリューションエクスプローラーでプロジェクト名を右クリックし、「追加」→「参照」を選択します。
    • 「アセンブリ」→「フレームワーク」を選択し、「PresentationCore」、「PresentationFramework」、「WindowsBase」にチェックを入れて「OK」をクリックします。
  5. 新しい項目の追加: ソリューションエクスプローラーでプロジェクト名を右クリックし、「追加」→「新しい項目」を選択します。
  6. 「クラス」の選択: 「新しい項目の追加」ダイアログで、「クラス」を選択し、ファイル名を例えば SingleWindow.cs と入力して「追加」をクリックします。
  7. コードの記述: SingleWindow.cs ファイルに以下のコードを記述します。
C#
using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Input;
using System.Windows.Media;

public class SingleWindow : Window
{
    private TextBlock myTextBlock;
    private Button myButton;

    public SingleWindow()
    {
        // ウィンドウの基本設定
        this.Title = "Single File WPF App";
        this.Width = 300;
        this.Height = 200;

        // Gridの作成
        Grid rootGrid = new Grid();
        this.Content = rootGrid;

        // TextBlockの作成と設定
        myTextBlock = new TextBlock();
        myTextBlock.Text = "Hello WPF!";
        myTextBlock.Margin = new Thickness(20);
        rootGrid.Children.Add(myTextBlock);

        // Buttonの作成と設定
        myButton = new Button();
        myButton.Content = "Click Me";
        myButton.Margin = new Thickness(20, 60, 20, 20);
        myButton.Click += MyButtonClick;
        rootGrid.Children.Add(myButton);
    }

    private void MyButtonClick(object sender, RoutedEventArgs e)
    {
        myTextBlock.Text = "Button Clicked!";
    }

    [STAThread]
    public static void Main()
    {
        var app = new Application();
        app.Run(new SingleWindow());
    }
}
  1. 実行: Visual Studioのメニューから「デバッグ」→「デバッグの開始」を選択するか、F5キーを押してアプリケーションを実行します。

このコードでは、SingleWindow クラスが Window クラスを継承し、UI要素(TextBlockとButton)をコード内で作成し、Grid レイアウトパネルに追加しています。イベント処理も同様にコード内で定義されています。Main メソッドはWPFアプリケーションのエントリポイントとなり、Application オブジェクトを作成し、ウィンドウを表示します。

注意点:

  • このように1つのファイルに記述する方法は、小規模なアプリケーションや簡単なテストには便利ですが、大規模なアプリケーションではコードの可読性や保守性の観点から、通常はUI定義(XAMLやデザイナー)とロジック(C#コード)を分離することが推奨されます。
  • WPFの場合は、必要なアセンブリ参照を手動で追加する必要があることに注意してください。

これらの手順で、Visual Studio C#でGUIアプリケーション(Windows FormsまたはWPF)のコードを1つのソースファイルで記述して実行できます。お試しください。

0 件のコメント:

コメントを投稿