Windowsフォームアプリケーションにおけるフォーム間データの受け渡し
この資料では、Windowsフォームアプリケーションにおいて、フォーム間でデータを受け渡す方法を解説します。具体的には、フォーム1(Form1)からフォーム2(Form2)を表示し、双方でデータをやり取りするサンプルを作成します。
目次
1. プロジェクトの作成
1.1 新規プロジェクトの作成
- プロジェクト名:
FormTransData
- 空のフォーム
Form1
とForm2
を2つ作成します。
1.2 フォームの追加
- ソリューションエクスプローラでプロジェクトを右クリックし、新しいフォームを追加します。
1.3 ボタンの追加
Form1
にボタン(button1
)を1つ追加します。Form2
にもボタン(button1
)を1つ追加します。- ツールボックスからそれぞれのフォームにドラッグ&ドロップして追加します。
1.4 クリックイベントの作成
Form1
とForm2
のボタンを 直接ダブルクリック します。これにより、Click
イベントのハンドラが自動的に作成され、コードエディタに移動します。- 作成されたイベントハンドラ内に、必要なコードを記述します。
2. Form2の表示手順
2.1 Form2の表示コードの記述
Form1
のボタン(button1
)のクリックイベントに、Form2のインスタンスを作成して表示するコードを記述します。
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2();
form2.Show();
}
2.2 動作確認の重要性
- プログラムを実行し、Form1のボタンをクリックしてForm2が表示されることを確認します。
- なぜ確認するのか?
- Form2が表示されることで、
Click
イベントが正しく設定され、イベントハンドラが正しく機能していることがわかります。これにより、次のステップでの作業を進めるための基盤が確保されます。
- Form2が表示されることで、
3. Form2からForm1へのデータ受け渡し
3.1 Form2側作業
- Form2に受け渡し用のデータを作成します。
public int form2Point = 200;
3.2 Form1側作業
button1_Click
イベントで、Form2のデータを受け取りボタンに表示します。
int point = form2.form2Point;
button1.Text = point.ToString();
3.3 動作確認の重要性
- プログラムを実行し、ボタンをクリックしてForm2のデータがForm1のボタンに表示されることを確認します。
- なぜ確認するのか?
- Form2からデータが正しく取得されていることを確認することで、フォーム間のデータ受け渡しが正常に行われていることが確認できます。これにより、次の手順でのデータ処理が正しく行われることを保証します。
4. Form1からForm2へのデータ受け渡し
4.1 Form1側作業
Form1からForm2にデータを受け渡す準備を行います。
Form1にデータを作成:
public int form1Point = 100;
Form2のインスタンスを作成する際に、Form1のインスタンスを渡します:
Form2 form2 = new Form2(this);
4.2 Form2側作業
Form1から受け取ったデータを使用してForm2を処理します。
Form1のインスタンスを保持するための変数を追加し、コンストラクタで受け取ります:
private Form1 form1;
public Form2(Form1 form1)
{
InitializeComponent();
this.form1 = form1;
}
Form2のボタンクリックイベントでForm1のデータを取得し、ボタンに表示します:
private void button1_Click(object sender, EventArgs e)
{
int point = form1.form1Point;
button1.Text = point.ToString();
}
4.3 動作確認の重要性
- プログラムを実行し、Form1のボタンをクリックしてForm2が表示されること、さらにForm2のボタンをクリックしてForm1のデータが表示されることを確認します。
- なぜ確認するのか?
- Form1からForm2へのデータ受け渡しが正しく行われていることを確認することで、フォーム間の双方向通信が正常に動作していることを確認できます。これにより、アプリケーションが期待通りに動作することを保証します。
5. 完成したサンプルコード
5.1 Form1.cs
using System;
using System.Windows.Forms;
namespace FormTransData
{
public partial class Form1 : Form
{
public int form1Point = 100;
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 form2 = new Form2(this);
form2.Show();
int point = form2.form2Point;
button1.Text = point.ToString();
}
}
}
5.2 Form2.cs
using System;
using System.Windows.Forms;
namespace FormTransData
{
public partial class Form2 : Form
{
private Form1 form1;
public int form2Point = 200;
public Form2()
{
InitializeComponent();
}
public Form2(Form1 form1)
{
InitializeComponent();
this.form1 = form1;
}
private void button1_Click(object sender, EventArgs e)
{
int point = form1.form1Point;
button1.Text = point.ToString();
}
}
}
6. まとめ
この技術資料では、Windowsフォームアプリケーションにおけるフォーム間のデータ受け渡し方法を解説しました。各手順ごとに動作確認の重要性を説明し、フォーム間でデータを相互にやり取りする実践的なアプリケーションを構築できるようになっています。
ディスカッション
コメント一覧
まだ、コメントがありません