所以我正在处理表单继承,并且我覆盖了基本表单的.Text()属性。除非我尝试调用自定义类属性,否则一切都可以继承。
public partial class baseForm : Form
{
public baseForm() { InitializeComponent(); }
public override string Text
{
get
{
return base.Text;
}
set
{
base.Text = value + " - " + customClass.employee.userId;
}
}
}
当我通过派生类中断的设计者启用customClass.employee.userId的代码时,我收到错误消息"对象引用未设置为对象的实例。"我的代码编译没有错误,在运行期间,甚至按计划正确执行。结果在那里,但我需要设计师。
如何让设计师在开发过程中不必一直注释掉这一行,然后将其取消注释以进行生产?
修改 customClass在运行时以登录形式在整个应用程序中实例化。在我登录期间,在frmLogin.cs中,成功登录后,我设置了该类的对象。
customClass.employee = new customClass.clsEMPLOYEEModel(connectionString, userId.Text);
public static class customClass
{
public static clsDynamicClass.clsEMPLOYEEModel employee
{
get
{
return _employee;
}
set
{
_employee = value;
}
}
}
答案 0 :(得分:0)
在运行时为整个应用程序在登录表单中实例化的customClass
这意味着employee
属性未设置为设计时。我建议在构造函数中使用“虚拟”值初始化employee
,或者在setter中检查null
:
public override string Text
{
get
{
return base.Text;
}
set
{
if(customClass != null && customClass.employee != null)
base.Text = value + " - " + customClass.employee.userId;
else
base.Text = value;
}
}