【发布时间】:2012-06-25 01:05:24
【问题描述】:
Debug.WriteLine(ucFollow.Visible);
ucFollow.Visible = true;
Debug.WriteLine(ucFollow.Visible);
ucFollow 是一个自定义的 UserControl,没什么花哨的。上面的代码打印出来:
False
False
最糟糕的是,这确实切换了 UserControl 的实际可见性(即,一旦调用此代码,ucFollow 就会出现),但 Visible 属性似乎不知何故不是......好吧,在后端可见,并且不反映更改,即使 UI 本身也是如此。
我什至不知道从哪里开始解决这个问题。有没有人知道什么可能会导致这种疯狂?
编辑:这是 Visual Studio 2010 中的标准 C# WinForm。
【问题讨论】:
-
好吧,如果你破坏了 C#,我担心你将不得不修复它。
-
是否存在控制层次结构?如果控件包含在不可见的父级中,则将 visible 分配给 true 并不一定表明该控件可见。
-
看到这种行为可能有很多原因,我不会直接跳到 c# 错误结论。请提供一个简单的可重现示例。
-
@TheDramaLlama 我们当然需要一个可重现的例子。我们没有你的代码库,只能猜测。
-
运行此代码时表单是否可见(即此代码是否在 Form.Load 事件中运行?)。如果控件在物理上不可见,它将返回 false,直到它可见。
标签: c# winforms user-controls