【发布时间】:2011-04-25 15:55:20
【问题描述】:
我有一个UserControl,它使用了我在表单上可用的一些公共属性,在此UserControl 的Paint 事件的顶部,我引用了控件的Parent 并强制转换它是我的表单的类型。
var _parent = (Form1)Parent;
此代码有效,但是在设计视图中,抛出了一个错误,我看到的所有 UserControl 都是一个白框,显示这篇文章标题中的错误。 stacktrace 直接指向这行代码。
现在,我已通过我的 UserControl 中的属性重新路由此转换来修复此错误
public Form1 ControlParent
{
get
{
if (Parent != null)
{
return (Form1)Parent;
}
return null;
}
}
这对于破坏设计视图的东西来说有点过分......还有其他想法吗?
【问题讨论】:
-
如果您在设计时不关心控件的显示,只希望错误消失,您可以在用户控件的 Paint 事件中使用“DesignMode”属性。如果(!DesignMode) {... 绘制代码 ...}
-
@Preets 哇,这也很有用。您应该将此作为答案发布,但感谢您输入 =D
标签: c# winforms forms user-controls casting