[C#]親画面のメソッドを子画面から呼び出す(デリゲート)

[スポンサードリンク]

親画面のメソッドを、子画面から呼び出したい場合がある。
例えば、親画面が一覧画面で子画面が入力画面の場合、子画面で入力したデータを親画面のリストに反映させたい場合。

概要

子画面を「ShowDialog()」メソッドを使用して表示しているなら、親画面の一覧表示処理のメソッドを「ShowDialog()」メソッドの直後に書けばよいが、仕様的に画面すべてがそれぞれ独立したプロジェクトのDLLファイルという場合がある。

このとき、親画面と子画面のつながりは何もない。

子画面を閉じるときに、親画面の一覧を再表示したい場合は、デリゲートを使用する。

親画面でのデリゲートの宣言

まず、親画面のソースにデリゲートを宣言する。
宣言文を記述する場所は、名前空間とフォームのクラス宣言の間。

子画面表示処理

デリゲートの形名「Refresh」は、引数と戻り値のないメソッドを入れるため、戻り値にvoid、()で引数なしと記述(実際に入れるメソッドに合わせること)。
※型名は任意の名前をつけてください。

Refreshのコンストラクタに渡している「DispData」はメソッド名で、このメソッドが親画面の一覧を更新する。

子画面側の記述

「DispData」は子画面に渡すメソッド名(任意の名前)。
子画面はコンストラクタで、デリゲートを受け取る。

「デリゲートを受け取る」とは、親画面のメソッド「DispData」が格納されているアドレスを受け取るということ。

以下に子画面の記述を示す。

[スポンサードリンク]

関連記事

コメント

  1. この記事へのコメントはありません。

  1. この記事へのトラックバックはありません。

CAPTCHA


ピックアップ記事

  1. ビューの作り方、ANSI_NULLS、QUOTED_IDENTIFIER、WITH(NOLOCK) …
  2. リモートデスクトップ接続のサーバーで、スタートメニューが反応しなくなった場合 (さらに&hell…
  3. 例えば、商品の色が登録されているもの、登録されていないものなどを取得する場合 (さらに&hell…
  4. C#でSQL Serverから値を取得するには、System.Data.SqlClientクラスを使…
  5. 割り算に必須な0除算回避 (さらに…)…

カテゴリー

[スポンサードリンク]




ページ上部へ戻る