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

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

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

Re[2]: 子でのイベントを親が知る方法


(過去ログ 37 を表示中)

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

■19465 / inTopicNo.1)  子でのイベントを親が知る方法
  
□投稿者/ 山本 (1回)-(2008/05/23(Fri) 14:07:00)

分類:[.NET 全般] 

C#2005

子画面でのイベント(クリック等)を、親画面が知る方法
もしくは
子画面でのイベントから、親画面のメソッドを呼び出す方法を教えてください。

条件として、
親画面と子画面は、共に開示している状態です。
親画面のボタンクリックイベントで子画面が開かれています。
子画面のイベント(クリック)で、親画面にて今表示しているデータを元に
再計算し、親画面で見せます。
再計算メソッドは親のみにあります。

類似した質問は見かけたのですが、よくわかりませんでした。
初心者向けのサイト等があれば、教えて下さい。
引用返信 編集キー/
■19467 / inTopicNo.2)  Re[1]: 子でのイベントを親が知る方法
□投稿者/ επιστημη (1046回)-(2008/05/23(Fri) 14:28:44)
επιστημη さんの Web サイト
あくまで一例。鵜呑みにするべからず。

--- Form2.cs : ボタンがふたつあるます ---
    public partial class Form2 : Form {
        public Form2() { InitializeComponent(); }
        // button1にイベントハンドラ追加
        public void setAction1(EventHandler eh) { button1.Click += eh; }
        // button2にイベントハンドラ追加
        public void setAction2(EventHandler eh) { button2.Click += eh; }
    }

--- Form1.cs : ボタンとテキストボックス各1 ---
    public partial class Form1 : Form {
        public Form1() { InitializeComponent(); }

        private int count = 0;

        // ボタンが押されたらForm2をモーダルに開く
        private void button1_Click(object sender, EventArgs e)
        {
            Form2 form = new Form2();
            form.setAction1(increment); // ハンドラその1
            form.setAction2(decrement); // ハンドラその2
            form.ShowDialog();
        }

        private void increment(object sender, EventArgs e) 
        { textBox1.Text = (++count).ToString(); }

        private void decrement(object sender, EventArgs e)
        { textBox1.Text = (--count).ToString(); }

    }

引用返信 編集キー/
■19481 / inTopicNo.3)  Re[2]: 子でのイベントを親が知る方法
□投稿者/ 山本 (2回)-(2008/05/23(Fri) 16:39:11)
できました。ありがとうございます。
また、一つ賢くなれました。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -