为什么主窗体的OnShow事件没有触发?

5
我有一些东西在主窗体的OnShow事件中,使用过程StuffLB填充几个列表框。我需要在任何其他窗体通过调用ShowModal后重新填充这些列表框。
在这样的模式窗口关闭后,主窗体只是在模式窗口所在的位置重绘,并且它的OnShow事件不会触发。
唯一的方法是:
frmM.Hide;
frmB.ShowModal;
frmM.Show;

我能填充列表框的唯一方法是在每个子表单的ShowModal调用后使用StuffLB调用吗? 我大约有25个可用表单。

我本来希望OnShow表示再次显示它时,无论是部分还是全部。

我会非常感激任何帮助或建议。


3
模态窗口后面清晰可见您的主要窗体。当一个窗体从隐藏变为可见时,“OnShow”事件会被触发。 - David Heffernan
1个回答

9

OnShow事件会在窗体可见时触发。你可以使用OnActivate事件。但是,由于是你的代码调用了另一个窗体的ShowModal方法,请将所需的代码放在一个单独的方法中,并在此处和FormShow中调用。


在关闭模态窗体后,OnActivate 事件不会触发。将 FormShow 的相关部分放入单独的方法中,在 ShowModal 后调用该方法是一个好主意。 - Andriy M

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接