我有一个类继承自另一个类,该类具有非虚拟属性(“控件”)。
由于我无法覆盖此属性,因此我使用与我的属性关联的“新”关键字。
在运行时,在正确的上下文中按我的意愿调用此属性。
当我从设计器打开我的表单时,设计器调用 base.Controls 而不是我的“新”控件。
我是否遗漏了什么,或者这只是 winforms 设计器中的不正确行为?
编辑,添加有问题的代码以获得更多解释。我有以下课程:
public partial class BauerGroupBox : ComponentFactory.Krypton.Toolkit.KryptonGroupBox
{
public BauerGroupBox()
: base()
{
}
public new Control.ControlCollection Controls
{
get
{
MessageBox.Show("GOT THERE");
return this.Panel.Controls;
}
}
}
当我在我的 intializecomponent 中获得以下代码时:
BauerGroupBox thisBox = new BauerGroupBox()
thisBox.Controls.Add(something)
当我在我的代码中添加一个新的“BauerGroupBox”时,它工作正常。但是,当我在设计器中打开我的代码时(即使在使用调试 devenv 时),消息框也不会显示,并且断点也不会命中。
当我运行我的应用程序时,断点被击中。