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

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

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

子画面閉じた時に、親画面の更新

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■102731 / inTopicNo.1)  子画面閉じた時に、親画面の更新
  
□投稿者/ cury (1回)-(2023/12/19(Tue) 08:15:56)

分類:[C#] 

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

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

どなたかご存知の方よろしくお願いします
引用返信 編集キー/
■102732 / inTopicNo.2)  Re[1]: 子画面閉じた時に、親画面の更新
□投稿者/ WebSurfer (2849回)-(2023/12/19(Tue) 08:19:37)
No102731 (cury さん) に返信

何を作っているか (WinForms? WPF? ASP.NET Web Forms? その他?) と開発環境 (OS, ターゲットフレームワーク) を書きましょう。
引用返信 編集キー/
■102735 / inTopicNo.3)  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;
        }
    }

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

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

このトピックをツリーで一括表示


トピック内ページ移動 / << 0 >>

このトピックに書きこむ