5

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

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

当然,如果tabpage1选择了,那么所有控件都会为可见属性返回正确的值。

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

4

3 回答 3

11

Visible 属性有点特殊,它的 getter 不会返回您分配的值。它告诉您控件是否实际可见。如果将其放置在未选择的标签页上,则不是。这是设计使然。

不支持获取实际的“意图可见”状态。您可以从 GetState(2) 中获取它,但这是一种内部方法。如果你真的很绝望,那么你可以使用反射。但正确的方法是自己跟踪它。

于 2011-01-13T18:07:35.423 回答
1

由于Visible您的面板的属性没有按照您期望的方式运行,请尝试将面板的Tag属性设置为某个值或其他值,并使用它来确定是否无法通过验证。

于 2011-01-13T18:12:16.293 回答
0

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

如果您试图确定用户当前正在查看哪个标签页,最好检查 TabControl 的SelectedTaborSelectedIndex属性。

于 2011-01-13T16:59:13.817 回答