※ ChatGPTを利用し、要約された質問です(原文:C#のフォーム間のデータの受け渡しについて)
C#のフォーム間のデータの受け渡しについて
このQ&Aのポイント
C#を使ったフォーム間データの受け渡し方法を教えてください。
フォーム1とフォーム2の間でデータの受け渡しをするためには、データ保持クラスを利用する方法が一般的です。
データ保持クラスを使ってフォーム1のボタン押下時にデータを格納し、フォーム2で値を取得することができます。
はじめまして。よろしくお願いします。
最近C#をはじめましたがいきなりつまづいてしまいました。
クラスを利用しフォーム間でデータの受け渡しをしたいのですがどうすればいいのでしょうか?
処理は以下のようになっております
まず、フォームが2つあります。フォーム1とフォーム2とします。
最初に起動されるのがフォーム1で、フォーム1にはボタンが2つあります。ボタンA、ボタンBとします
ボタンA、ボタンBどちらのボタンを押下しても、フォーム2が開きますがどちらを押されてたかをフォーム2のテキストボックス(テキスト2とします)に表示します。
クラスですがフォームが2つとデータ保持のためのクラスが1つ(データ保持クラスとします)があります。
データ保持クラスにはint形のBtnClickプロパティ(get,set)を作成しております。,
フォーム1のボタンA押下時処理
データ保持クラスのBtnClickに1を格納し、フォーム2を開きます。
フォーム1のボタンB押下時処理
データ保持クラスのBtnClickに2を格納し、フォーム2を開きます。
フォーム2起動時処理
データ保持クラスのBtnClickから値を取得しフォーム2のテキスト2へ表示します。
で、肝心の質問ですが、データ保持クラスの宣言はどこにすればいいのでしょうか?
また、インスタンスはどのタイミングで作成すればいいのでしょうか?
フォーム1にpublicとして宣言しインスタンスを作成し、ボタン押下時にBtnClickプロパティーにデータを格納し・・・
というところまではできたのですが、フォーム2で値が取得できないどころか、コンパイルが通りません。
あと、こういうデータ保持クラス使い方って一般的ですか??
長々と脈略もなく書きましたがご教授ください。どうぞよろしくお願いします。
お礼
早速のご回答ありがとうございます。 なるほど、データ保持クラスをフォーム2に渡すため、コンストラクタをオーバーロードしデータ保持クラスを渡してあげればいいんですね。 解決できました。どうもありがとうございました。