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

问题描述 投票:4回答:3

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

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

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

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

.net winforms controls tabcontrol tabpage
3个回答
1
投票

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


11
投票

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

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.