我正在编写一个程序,其中每个页面都是一个自定义控件。我遇到的问题是我无法让父控件确定子控件何时关闭。这是调用子控件的代码:
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);
一切正常,但问题是一旦子控件完成,我需要做一些事情,比如重绘一个列表视图,但上面的事件不会触发。有没有其他方法可以做到这一点?还是我需要以另一种方式继续下去?
当前发生的情况是,例如,我使用子控件将某些内容添加到数据库中,然后退出子控件。子控件消失,父控件留在屏幕上,但父控件没有任何更新。我需要退出父控件并返回查看添加到数据库中