我有一个UserControl
它使用了我的表单上可用的一些公共属性,位于表单的顶部Paint
为此举办的活动UserControl
,我参考了Parent
控件的类型并将其转换为我的表单的类型。
var _parent = (Form1)Parent;
但是,此代码可以工作,在“设计”视图中,会引发错误,并且我看到的所有内容都代替了UserControl
是一个白框,显示本文标题中的错误。堆栈跟踪直接指向这行代码。
现在,我通过用户控件中的属性重新路由此转换来修复此错误
public Form1 ControlParent
{
get
{
if (Parent != null)
{
return (Form1)Parent;
}
return null;
}
}
对于破坏设计视图的东西来说,这有点太多了……还有其他想法吗?
根据代码,它看起来像您的孩子Control
实例已经可以处理ControlParent
being null
。因此,最简单的解决方法就是执行以下操作
public Form1 ControlParent
{
get
{
return Parent as Form1;
}
}
注意:一般来说,依赖于Parent
of a Control
属于特定类型。它可以防止它被重新托管在其他控件中,并且可能会破坏经常捏造类型以提供良好设计体验的设计人员。如果你必须依赖像这样的值Parent
作为特定类型,请确保有一个后备计划,该计划不会在面对不同类型时崩溃。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)