0

我有一个非常简单的问题。

我打电话给一个表格,.show()然后.hide()我想确定当前状态。我一直在检查.visible以确定表单是否可见,但我偶然发现了一个问题。我的表单正在一个 SplitContainer 中呈现,每次隐藏表单时我都会折叠它。因此,按照逻辑,一旦我隐藏了.hide()不再可见的表单,并且由于我已经折叠了它的容器,即使我调用.show()它仍然不可见,因为它的容器已关闭。

那么,我怎样才能简单地检查是否.show()已被调用,而不是检查表单是否可见。

最终目标是显示()/隐藏()表单以及折叠/取消折叠容器。

提前致谢!

PS:我知道我可以简单地检查容器并相应地显示表单,但我的表单也支持从容器中分离,所以这对我不起作用。

4

1 回答 1

4

你不能在这里走捷径。通过修改表单的 TopLevel 属性以便您可以将其放在面板上,表单的 Visible 属性不再是您最后调用 Show() 还是 Hide() 的可靠指示。因为读取属性只会告诉用户是否可以看到表单。如果控件的 Parent 不可见,则该控件的 Visible 属性将返回 False,即使您将其设置为 True。

解决方法很简单,只需使用布尔变量来跟踪。或者当你需要它处于/可见时调用 Show and Hide,在它已经可见时调用 Show 或在它已经不可见时调用 Hide 无关紧要。

于 2012-04-22T13:47:46.710 回答