VisibleChanged在不可见时不会加注

时间:2017-07-19 08:10:05

标签: c# winforms visibility

我正在使用c#WinForm。

我有一个自定义UserControl:MyControl : UserControl, INotifyPropertyChanged。我在事件VisibleChanged上附加了一个方法:this.VisibleChanged += new System.EventHandler(this.MyControl_VisibleChanged);

我的应用程序有一些页面,每个页面都是MyControl之类的控件。 MainWindows顶部包含Button,用于切换选项卡。

我的问题是只有在Visible变为true时才调用我的函数MyControl_VisibleChanged。我在选项卡中添加了一项测试以检查MyControl.Visible,当我选择其他标签时,MyControl.Visiblefalse但未引发任何事件。

我尝试为此控件定义一个新属性Visible但从未设置值,只修改base值。

你能帮我找一个解决方案吗?

1 个答案:

答案 0 :(得分:1)

这是Visible工作方式的怪癖,explained here。他的解决方案是使用他完全可以控制的属性,但你可以使用一种方法,允许制表符开关告诉他们的孩子提高他们VisibleChanged事件的额外时间。

this question的前两个答案也可能有用。