【问题标题】:Button.Parent is Null, when Called in the Constructor在构造函数中调用时,Button.Parent 为 Null
【发布时间】:2018-06-22 06:28:34
【问题描述】:

我使用的是 Windows 窗体和 .NET Framework v3.5。

我继承了 System.Windows.Forms.Button 类,
在继承器中,我在Ctor中写了一些代码。

在该代码中,我需要调用this.Parent
然而this 存在,this.Parent 在 Button 的 Ctor 中调用时返回 null。

由于控件没有像表单那样的Load event
在创建按钮(并添加到其父窗体)后,我将需要另一个解决方案,使我能够获取按钮的父级

我可以用什么来实现这一点?

【问题讨论】:

  • 这取决于要求。你的具体要求是什么? Parent 也是父控件,不一定是表单。
  • 如果您分享了需求并描述了您正在尝试做的事情,那么您可能会收到一些更符合需求的其他好建议。

标签: .net winforms controls


【解决方案1】:

您可以订阅自己的 ParentChanged 事件(或者,更好的是,覆盖 OnParentChanged 方法,这样您就不必设置事件订阅)

【讨论】:

  • 谢谢达米安。我会用它。但是对于一般知识,控件中有没有类似于Load event 的东西?我们可以使用的一些事件/方法,发生在 Ctor 之后,并且所有东西都可以访问?
  • @spaceman - 您可以考虑覆盖几个OnParentXxx 方法,这些方法可能接近您的要求。请注意,在一般情况下,任何控件都无法确定“一切都已设置完毕”,因为我们可以构建动态 UI。
  • 谢谢 Damien 和 Lasse!您的两个答案(ParentChangedHandleCreated)都很完美,我会从现在开始使用它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-31
  • 1970-01-01
  • 1970-01-01
  • 2021-11-23
  • 2013-10-03
  • 2017-02-08
相关资源
最近更新 更多