各ページがカスタム コントロールであるプログラムを作成しています。私が抱えている問題は、子コントロールがいつ閉じているかを親コントロールに判断させることができないことです。これは、子コントロールを呼び出すためのコードです。
public void DisplayPanel(Control c)
{
Cursor = Cursors.WaitCursor;
c.Dock = DockStyle.Fill;
c.Show();
c.ControlRemoved += new ControlEventHandler(OnChildClose);
this.Controls.Add(c);
c.BringToFront();
Cursor = Cursors.Default;
}
これがイベント ハンドラです。
public void OnChildClose(object sender, EventArgs e)
{
MessageBox.Show("Child closed");
... rest of code to redraw listview...
}
子コントロールで、これは私がそれを終了する方法です:
this.Parent.Controls.Remove(this);
それはすべて機能しますが、子コントロールが終了したら、リストビューを再描画する必要がありますが、上記のイベントは発生しません。これを行う他の方法はありますか?それとも別の方法で進める必要がありますか?
たとえば、子コントロールを使用してデータベースに何かを追加し、子を終了します。子コントロールは消え、親は画面に残りますが、親では何も更新されません。親コントロールを終了して、データベースへの追加を確認するために戻る必要があります