winforms - 为什么主窗体的 OnShow 不触发?

标签 winforms delphi events

我在主窗体的 OnShow 事件中有一些内容,它使用过程 StuffLB 填充了一些列表框。在通过调用 ShowModal 显示任何其他表单后,我需要重新填充这些列表框。

这样的模态窗体关闭后,主窗体将在模态窗体所在的位置重新绘制,并且其 OnShow 事件不会触发。

触发 OnShow 事件的唯一方法是:

frmM.Hide;
frmB.ShowModal;
frmM.Show;

在子表单上的每次 ShowModal 调用之后,填充列表框以使用 StuffLB 调用是唯一的方法吗?我大约有 25 份表格可供使用。

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

如果有任何帮助或建议,我将不胜感激。

最佳答案

OnShow 事件在表单可见时触发。您可以使用 OnActivate 事件。但是,由于您的代码调用了另一种表单的 ShowModal,因此只需将所需的代码放入单独的方法中,并在此处和 FormShow 中调用即可。

关于winforms - 为什么主窗体的 OnShow 不触发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15441676/

相关文章:

c# - 使用计算机本地或网络中的sql服务器名称获取服务器名称

winforms - 限制按钮单击 telerik radgridview cellValidating 事件 - winforms

delphi - 有什么方法可以获取Delphi编译器的子版本

javascript - 如何在修改 DOM 后使自定义文本编辑器使用撤消和重做快捷方式?

c# - 关键字 'event' 在 C# 中是可选的吗?

javascript - 如何将 "select"事件附加到页面上的每个文本节点?有没有更好的办法?

c# - 检查是否连接到 Wi-Fi 网络 C#

c# - 如何在固定大小的 ToolStripDropDown 中滚动

delphi - 如何继承泛型虚方法?

Delphi & Active Directory 安全组