Application.OpenForms.Count 始终返回零
在 Windows 窗体应用程序中,访问 Application.OpenForms 属性通常用于获取集合当前打开的表格。但是,有一个已知错误可能会导致 Application.OpenForms.Count 属性始终返回零。
在创建表单后修改某些属性时会出现此问题。这些属性包括:
何时调用 CreateWindowEx() 创建窗体窗口后,如果更改任何这些属性,Windows 窗体必须销毁原始窗口并使用更新的样式标志创建一个新窗口。但是,由于存在错误,Application 类无法正确地将新表单添加到 OpenForms 集合中。这会导致 Application.OpenForms.Count 属性始终返回零。
解决方案
要避免此错误,请始终仅在表单的构造函数。避免在调用 CreateWindowEx() 后执行的事件处理程序或其他代码中更改它们。
Application.OpenForms 的替代品
一般来说,建议避免依赖由于此错误,在 Application.OpenForms 属性上。相反,请考虑将表单实例传递给需要通过其构造函数显示消息框的类。 MessageBox 通常会自动确定正确的父窗口,并在大多数情况下在活动窗口上显示消息框。
以上是为什么我的 Windows 窗体应用程序中的 Application.OpenForms.Count 始终返回零?的详细内容。更多信息请关注PHP中文网其他相关文章!