• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:別フォームでMainFormのArrayListを使いたい)

別フォームでMainFormのArrayListを使いたい

このQ&Aのポイント
  • MainForm(Form1)からメールの新規作成をする際に、新たにメール作成用フォーム(ここではForm3 NewMailForm)をShowDialogで表示しているため複数件のメールを打つ事が出来ない仕様なのですが、これを複数件打てるようにNewMailForm.Show()に変更すると、今まで使用できたDialogResult.OKなどの判定が使用できないのと、MainFormで使用しているcollectionMail(ArrayList)が使えないのですが、どうすれば解決できるでしょうか?
  • MainForm(Form1)からメールの新規作成をする際に、新たにメール作成用フォーム(ここではForm3 NewMailForm)をShowDialogで表示しているため、複数件のメールを打つ事が出来ない仕様です。NewMailForm.Show()に変更すると、DialogResult.OKなどの判定が使用できなくなります。また、MainFormで使用しているcollectionMail(ArrayList)が使えない問題も発生します。この問題を解決するためにはどうすれば良いでしょうか?
  • MainForm(Form1)からメールの新規作成をする際に、新たにメール作成用フォーム(ここではForm3 NewMailForm)をShowDialogで表示しているため複数件のメールを打つ事が出来ない仕様です。この問題を解決するためには、NewMailForm.Show()に変更すると、DialogResult.OKなどの判定が使用できなくなります。また、MainFormで使用しているcollectionMail(ArrayList)も使えません。どのようにすれば解決できるでしょうか?

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

Form3側に ArrayListを受け取るプロパティを準備して リストの更新を Form3側ですればいいのでは? private ArrayList _sendList = null; public ArrayList sendList {   set {     _sendList = value;   }   get {     return _sendList;   } } といった具合でArrayListをやり取りします NewMailForm.sendList = collectionMail[SEND]; といった具合に設定してから フォームを呼び出す モーダル時のリスト更新部などをForm3側に構築 Form1側にリスト/ツリーを更新するPublicメソッドを準備 Form3側の FormClosingイベントで 上記のメソッドを呼び出す といった具合でどうでしょう

mizuki_sak
質問者

お礼

回答ありがとうございます。 サンプル側に実装してみてうまく動きました。 Form1のインスタンスをForm3に引き渡すようにして Form1のUpdateListView()とUpdateTreeView()を 呼び出せるようにしてみました。 直接送信のメソッドも呼べるようにしているので 一応やりたい事は出来ました。 本当にありがとうございます。 private Form1 _pForm; public Form1 pForm {   set   {    _pForm = value;   }   get   {    return _pForm;   } }

関連するQ&A