• ベストアンサー

C#でのフォーム間のデータの受け渡しについて

フォーム間のデータ(パラメータ等)の受け渡しについて教えてください。 現在Form1からForm2を起動させる場合、以下のようにForm2のインスタンスの生成時のパラメータを設定してもForm2のLoadイベントでは拾うことはできないのでしょうか? ↓実際のコード //Form1クラスのインスタンスを作成する //引数(a,b) Form2 f = new Form2(a,b); //Form1を表示する //ここではモーダルダイアログボックスとして表示する //オーナーウィンドウにthisを指定する f.ShowDialog(this); //フォームが必要なくなったところで、Disposeを呼び出す f.Dispose(); また、上記の方法が違っていた場合、方法としてどのようなやり方があるのか教えてください。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • PED02744
  • ベストアンサー率40% (157/390)
回答No.2

質問の意味がわからないんですが・・・(^-^; Form2 f = new Form2(~); でインスタンス生成をしているのですから、この時のパラメータは コンストラクタに渡っています。 インスタンス生成時に渡されているパラメータなのですから、 Loadイベント以前の問題です。

ryota0117
質問者

お礼

返信が遅れてすみません。 パラメータの件はうまくいきました。ありがとうございました。 また、エラーの件ですが、詳細は良くわからないのですが、 コンパイル環境が原因でエラーが起きていたみたいです。 お騒がせして申し訳ありませんでした。 これからもよろしくお願いいたします。

ryota0117
質問者

補足

質問が間違っていました。コンストラクタでのパラメータの取得のイメージであっています。Loadイベントは間違いでした。 ただ、実際に実行しようとすると以下のようなエラーが出てしまいました。 ↓以下エラー 「'System.ArgumentNullException' のハンドルされていない例外が mscorlib.dll で発生しました。 追加情報: 値を Null にすることはできません。」 これはどこの情報を修正すればよいでしょうか? 実際のコードでは //引数(a,b) Form2 f = new Form2(a,b); の部分を //引数(2,1) Form2 f = new Form2(2,1); としていますが、何か問題がありますでしょうか?

その他の回答 (1)

  • Struts
  • ベストアンサー率48% (29/60)
回答No.1

Form2のコンストラクタで取得できると思います。 コンストラクタ以外で取得したい場合は、setterメソッドを作成して、適所でsetterメソッドをCallすればOKです。

ryota0117
質問者

お礼

返信が遅れてすみません。 パラメータの件はうまくいきました。ありがとうございました。 また、エラーの件ですが、詳細は良くわからないのですが、 コンパイル環境が原因でエラーが起きていたみたいです。 お騒がせして申し訳ありませんでした。 これからもよろしくお願いいたします。

関連するQ&A