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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了不可见的标签页(标签控件)上的控件返回Visible = false相关的知识,希望对你有一定的参考价值。

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

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

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

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

答案

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

另一答案

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

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

另一答案

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

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

以上是关于不可见的标签页(标签控件)上的控件返回Visible = false的主要内容,如果未能解决你的问题,请参考以下文章

将标签页动态添加到页面控件并嵌入表单?

分页控件在 Gridview 中不可见

Delphi xlsreadwriteii控件读Delphi标签页为乱码?

标签页 Windows 窗体内的用户控件停靠栏

在多行选项卡控件中将它们从底部移动到顶部时,标签页正在跳跃

MFC中TAB控件的编辑