VisibleChanged 在不可见时不会引发

A.P*_*cat 5 c# visibility winforms

我正在研究 c# WinForm。

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

我的应用程序有一些页面,每个页面都是一个像MyControl. MainWindows 顶部包含按钮,用于切换选项卡。

我的问题是,MyControl_VisibleChanged仅当 Visible 更改为 true 时才调用我的函数。我在一个选项卡中添加了一个测试来检查MyControl.Visible,当我选择另一个选项卡时,MyControl.Visible但false没有引发任何事件。

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

你能帮我找到解决方案吗?

小智 4

这是工作方式中的一个怪癖Visible,在这里进行了解释。他的解决方案是使用他完全控制的属性,但您可以使用一种方法,允许选项卡切换告诉他们的孩子VisibleChanged在额外的时间引发他们的事件。

这个问题的前两个答案可能也有用。