C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

子画面閉じた時に、親画面の更新 /cury (23/12/19(Tue) 08:15) #102731
Re[1]: 子画面閉じた時に、親画面の更新 /WebSurfer (23/12/19(Tue) 08:19) #102732
Re[1]: 子画面閉じた時に、親画面の更新 /kiku (23/12/19(Tue) 08:57) #102735
Re[1]: 子画面閉じた時に、親画面の更新 /furu (23/12/19(Tue) 09:36) #102736


親記事 / ▼[ 102732 ] ▼[ 102735 ] ▼[ 102736 ]
■102731 / 親階層)  子画面閉じた時に、親画面の更新
□投稿者/ cury (1回)-(2023/12/19(Tue) 08:15:56)

分類:[C#] 

Visual Stadio2022を使用してC#でWindowsアプリを作成しています

質問なのですが、親画面から子画面を開いて子画面でDB更新を行い
子画面を閉じた時に、呼び出し元の親画面に更新されたデータが反映させるには、
どうやって実装すればよろしいでしょうか?

どなたかご存知の方よろしくお願いします
[ □ Tree ] 返信 編集キー/

▲[ 102731 ] / 返信無し
■102732 / 1階層)  Re[1]: 子画面閉じた時に、親画面の更新
□投稿者/ WebSurfer (2849回)-(2023/12/19(Tue) 08:19:37)
No102731 (cury さん) に返信

何を作っているか (WinForms? WPF? ASP.NET Web Forms? その他?) と開発環境 (OS, ターゲットフレームワーク) を書きましょう。
[ 親 102731 / □ Tree ] 返信 編集キー/

▲[ 102731 ] / 返信無し
■102735 / 1階層)  Re[1]: 子画面閉じた時に、親画面の更新
□投稿者/ kiku (386回)-(2023/12/19(Tue) 08:57:47)
No102731 (cury さん) に返信
> Visual Stadio2022を使用してC#でWindowsアプリを作成しています
> 
> 質問なのですが、親画面から子画面を開いて子画面でDB更新を行い
> 子画面を閉じた時に、呼び出し元の親画面に更新されたデータが反映させるには、
> どうやって実装すればよろしいでしょうか?
> 
> どなたかご存知の方よろしくお願いします

WinForm、.NETFramework4.8
子画面から親画面に情報を渡す方法が
わからないと仮定して回答します。
外れていたらすみません。

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e)
        {
            using (var f = new Form2())
            {
                var ret = f.ShowDialog();
                if(ret == DialogResult.OK)
                {
                    //子画面にてDB更新ボタンが押された場合
                    var result = f.result;
                }
                else
                {
                    //子画面にて閉じるボタンが押された場合
                }
            }
        }
    }
    public partial class Form2 : Form
    {
        public List<string> result { get; set; } = new List<string>();
        public Form2()
        {
            InitializeComponent();
            DialogResult = DialogResult.None;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            //DBへの更新処理
            //更新結果を取得
            var list = new List<string>();
            list.Add("aaaa");
            list.Add("bbbb");
            list.Add("cccc");
            //更新結果をセット
            result = list;
            //OKをセット
            DialogResult = DialogResult.OK;
        }
    }

[ 親 102731 / □ Tree ] 返信 編集キー/

▲[ 102731 ] / 返信無し
■102736 / 1階層)  Re[1]: 子画面閉じた時に、親画面の更新
□投稿者/ furu (223回)-(2023/12/19(Tue) 09:36:57)
No102731 (cury さん) に返信
> 質問なのですが、親画面から子画面を開いて子画面でDB更新を行い
> 子画面を閉じた時に、呼び出し元の親画面に更新されたデータが反映させるには、
> どうやって実装すればよろしいでしょうか?
子画面をShowで表示しているかShowDialogで表示しているかによって
やり方変わってくると思います。

ShowDialogで表示している場合
  親画面は子画面を閉じた時に処理走るので
  更新されたデータ(子画面のものであってになくても)
  閉じたタイミングで親画面に表示できます。
Showで表示している場合
  子画面を閉じた時に
  子画面から親画面のメソッドをコールバックして
  表示するといいです。
  ShowDialogでもこの方法は使用できます。
[ 親 102731 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -