我有一个非常简单的问题。
我在表单上调用.show()
和.hide()
,然后我想确定当前状态。我一直在检查.visible
以确定表单是否可见,但我偶然发现了一个问题。我的表单在SplitContainer中呈现,每次隐藏表单时我都会崩溃。所以,通过逻辑,我用.hide()
隐藏表单后,它就不再可见了,因为我已经折叠了它的容器,即使我调用.show()
它仍然是不可见的,因为它的容器已关闭。
那么,我怎样才能简单地检查是否已调用.show()
而不是检查表单是否可见。
最终目标是展示()/ hide()表单以及折叠/取消折叠容器。
提前致谢!
P.S。:我知道我可以简单地检查容器并相应地显示表格,但我的表格也支持从容器中分离,因此对我不起作用。
答案 0 :(得分:4)
你不能在这里采取捷径。通过修改窗体的TopLevel属性以便将其放在面板上,窗体的Visible属性不再是您上次调用Show()还是Hide()的可靠指示。因为阅读该属性只会告诉用户是否可以看到该表单。如果控件的Parent不可见,则控件的Visible属性返回False,即使您将其设置为True。
解决方法很简单,只需使用布尔变量来跟踪。或者只需在显示和隐藏时调用显示和隐藏,当它已经可见时调用显示或者当它已经不可见时调用隐藏无关紧要。