0

我有一个带有子表单的 MDI 表单,我想将其重构为带有包含子控件的选项卡控件的单个表单,以便摆脱MDI 的笨拙

在考虑将子窗体转换为子控件(或用户控件)时,我确实看到我会丢失FormClosing某些子窗体使用的事件。

我可以重写Dispose来处理一些功能,但在某些情况下我想取消关闭事件。另外,我希望在控件关闭之前调用此事件,即使它所在的窗体没有关闭,所以将控件连接到窗体的关闭事件不是一种选择。

是否有一种干净的方法可以FormClosing在控件类中重现事件,或者当我将子表单添加到选项卡控件时,我应该将它们保留为表单吗?

编辑: 为了更清楚一点,我正在寻找一种方法来ControlClosing在用户控件关闭之前(不一定是在主机表单关闭时)提出类似的内容,以便提示用户是否希望将更改保存到他们的数据,并允许用户选择标准是/否/取消。

我不希望覆盖托管控件的表单的关闭。

4

2 回答 2

0

尝试ParentChanged,或者可能VisibleChanged

于 2012-04-25T23:44:13.513 回答
0

只要您在选项卡控件中创建子表单(我假设您为每个 TagPage 放置一个子表单),您就可以删除整个 TabPage 或仅删除 TabPage 中的对象来处理您的子表单

TabControl1.TabPages.Remove(TabPage1)

或者

TabPage1.Controls.Remove(ChildForm)
于 2012-04-26T04:09:33.673 回答