我使用C#,.NET 4.5.1,VS 2013。
如果我像这样创建一个UserControl,有一个包含另一个类的属性,任何人能解释我的确切原因吗?
public partial class CustomerSelect : UserControl
{
public Classes.Customer Customer
{
get { return customer; }
set { customer = value; }
}
private Classes.Customer customer;
public CustomerSelect()
{
InitializeComponent();
customer = new Classes.Customer();
}
}当我将该控件放置在Windows窗体上时,他会在设计器中生成该代码:
Classes.Customer customer1 = new Classes.Customer();
this.customer1 = new Classes.Customer();以下是:
//
// customerSelect1
//
this.customerSelect1.Customer = customer1;为什么他会自动创建一个新客户?我尝试用= null,=newClasses.Customer()更改私有属性的初始化,删除我的控件,删除代码,再次添加,得到相同的结果。
如果有人能解释我理解错了什么,谢谢。
发布于 2015-07-20 14:35:42
这是具有getter和setter的公共属性的正常行为,它在设计时具有一个值,而不是DefaultValue。您必须告诉设计器不要序列化该属性,也不能在“属性”窗口中显示它:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
[Browsable(false)]
public Classes.Customer Customer
{
get { return customer; }
set { customer = value; }
}https://stackoverflow.com/questions/31518820
复制相似问题