MENU
BARREL
Auther
2019年にブログを始めました。趣味はゲームが5割、読書やらアニメ鑑賞やらが3割、残りはその都度新しい何かをやってます。

Windowsフォームアプリ 新しいフォームを開く【初心者向け】

WinFormアプリケーションの開発において、複数のフォームを効果的に管理し、操作する能力は不可欠です。

この記事では、WinFormで新しいフォームを開く基本的な方法を説明します。特に、メインフォームから別のフォームを起動する方法と、データを渡しつつ新しいフォームを開く高度なテクニックを学びます。

より複雑でインタラクティブなデスクトップアプリケーションの開発への第一歩を踏み出しましょう!

実行環境

OS:Windows 11 Home
開発環境:Visual Studio 2022 Community
フレームワーク:Windows Form Application .NET6
その他ライブラリ:なし

※Visual Studio本体のインストールは割愛しますが、.NETデスクトップ開発のツールをインストールが必要です。

目次

メインフォームを作成する

Visual Studio 2022を起動し、Windowsフォームアプリを作成します。

設定はすべてデフォルトでOKです。

プロジェクトを作成すると何もない状態のフォームが表示されました。

空のフォームができたら次は新たなフォームを作成しましょう!

新たなフォームを作成する

プロジェクトを右クリックして、

追加 → 新規項目

から、フォーム(Windowsフォーム)を追加します。ここではファイル名はForm2.csにしておきます。

Form2はわかりやすくするために小さめなサイズに変更しました。

メインフォームから新たなフォームを開く

追加のフォームが用意できたらメインフォームにボタンを設置しましょう。

ボタンクリックイベントにてForm2を呼び出します。

メインフォーム(Form1.cs)上にボタンを配置し、デザイナー上でダブルクリックするとコードに直接イベントが貼り付けられます。
(イベントプロパティからClickイベントを登録してもOKです)

namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var Form2 = new Form2();    // Form2クラスのインスタンスを生成して表示する
            Form2.Show();               // Form2を表示する
        }
    }
}

button1のクリックイベント内にForm2のインスタンスを作成し、表示するコードです。

動かしてみよう!

デバッグモードで動かしてみます。

表示できました。完成!

実践テクニック 引数を渡しつつ新たなフォームを開く

先程までのチュートリアルではただ単にボタンで別のフォームが起動するだけのものでした。しかし、さすがに味気ないのでここでひとつまみ。味を加えてみましょう。

Form1にテキストボックスを配置、Form2にはラベルを配置します。

Form1で入力したテキストをForm2へと送り、Form2で表示するプログラムです。

namespace WinFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            var Form2 = new Form2(textBox1.Text);    // Form2クラスのインスタンスを生成時に、textBox1のテキストを渡す
            Form2.Show();                            // Form2を表示する
        }
    }
}

Form1ではForm2インスタンスを生成する際にtextbox1.Textを渡すように修正します。

namespace WinFormsApp1
{
    public partial class Form2 : Form
    {
        public Form2(string text)
        {
            InitializeComponent();
            label1.Text = text;
        }
    }
}

Form2ではコンストラクタにてstring型の変数を引数に持ちましょう。

上記のコードには初学者向けにシンプルなコードとしているため、例外処理を含まずに記載しています。
入力なしの場合は処理しない、記号が含まれている場合は無視する、などの処理を省いています。

起動してみる

テキストボックスに程よいテキストを入力し、ボタンをクリックします。

テキストの文字列がForm2へと渡され、label1のテキストが変更されました。

さいごに

この記事では、Windows Form Applicationで新しいフォームを開く基本的な手順をご紹介しました。

これらの知識を実際のプロジェクトで応用し、より複雑なアプリケーションの開発にチャレンジしてみてください。

もしご質問やフィードバックがあれば、お気軽にコメントを残してください。

記事で使用したサンプルコードはGithubに置いています。

https://github.com/Deckard-Y/WinForm_OpenNewForms

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA

目次