了解winform控件中的状态

时间:2012-02-09 14:12:04

标签: c# winforms

我有一个winform用户控件。在构造函数中,我实例化了一个依赖项。它就像

public IProvider provider {get;set;}

public MyUserControl()
{
   InitializeComponent();
   provider = new MockProvider();//for testing. Will pass into constructor eventually
}

private void MyUserControl_Load(object sender, EventArgs e)
{
   SomeModel model = new SomeModel(provider);//provider is null
   //do work
   model.InsertIntoDb();
}

我认为会员状态持续存在,直到您明确呼叫Form.Close()。那么为什么在Load事件中提供者对象为null?

2 个答案:

答案 0 :(得分:0)

这应该有效。确保new关键字在控件的构造函数中,并且某些东西在某处实例化该控件。

确保在第二个函数之前调用new。也许这是另一种方式。国家应该坚持下去。

答案 1 :(得分:0)

InitializeComponent()正在设置“父”表单中的Provider = null(实例化用户控件的表单)。很好地证明了winforms don't support无参数构造函数。