VB.NET:是否调用了form.show()?

时间:2012-04-22 13:25:54

标签: vb.net forms hide show splitcontainer

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

我在表单上调用.show().hide(),然后我想确定当前状态。我一直在检查.visible以确定表单是否可见,但我偶然发现了一个问题。我的表单在SplitContainer中呈现,每次隐藏表单时我都会崩溃。所以,通过逻辑,我用.hide()隐藏表单后,它就不再可见了,因为我已经折叠了它的容器,即使我调用.show()它仍然是不可见的,因为它的容器已关闭。

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

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

提前致谢!

P.S。:我知道我可以简单地检查容器并相应地显示表格,但我的表格也支持从​​容器中分离,因此对我不起作用。

1 个答案:

答案 0 :(得分:4)

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

解决方法很简单,只需使用布尔变量来跟踪。或者只需在显示和隐藏时调用显示和隐藏,当它已经可见时调用显示或者当它已经不可见时调用隐藏无关紧要。