不可见的标签页(标签控件)上的控件返回Visible = false

时间:2011-01-13 16:46:46

标签: .net winforms controls tabcontrol tabpage

我在Windows窗体中有一个标签控件。除了以下示例之外,它工作得很好。当我选择tabpage2时,tabpage1上的所有控件都将其visible属性返回为FALSE,这实际上是不真实的,因为它们都设置为visible = false

我想这是因为tabpage1设置为visible = false所以所有子控件都继承FALSE。

当然,如果选择tabpage1,则所有控件都会返回visible属性的正确值。

必须有一个解决方法。有没有人有解决方案?

3 个答案:

答案 0 :(得分:11)

Visible属性有点特殊,它的getter不会返回您指定的值。它会告诉您控件是否实际可见。如果将其放在未选中的标签页上,则不会出现这种情况。这是设计的。

不支持获取实际的“打算显示”状态。你可以从GetState(2)中得到它,但这是一个内部方法。如果你真的很绝望,那么你可以使用Reflection。但正确的方法是自己跟踪它。

答案 1 :(得分:1)

由于面板的Visible属性行为不符合您的预期,请尝试将Panel的Tag属性设置为某个或其他属性,并使用它来确定是否失败验证

答案 2 :(得分:0)

制作一个小项目来确认这一点,如果你检查当前选中的标签页上的任何控件的Visible属性,它将返回false,因为控件是可见。

如果您要确定用户当前正在查看哪个标签页,您可能最好检查TabControl的SelectedTabSelectedIndex属性。