Обычно, когда вы устанавливаете значения в конструкторе вашего пользовательского элемента управления, конструктор VS генерирует код, который устанавливает все те значения, которые вы устанавливаете в конструкторе. IE:
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
}
public class MyTextBox : TextBox
{
public MyTextBox()
{
this.Person = new Person
{
FirstName = "John",
LastName = "Doe",
Age = 45
};
}
[Browsable(false)]
public Person Person { get; set; }
}
Когда я добавляю MyTextBox в мою форму, это сгенерированный код:
//
// myTextBox1
//
this.myTextBox1.Location = new System.Drawing.Point(149, 91);
this.myTextBox1.Name = "myTextBox1";
person1.Age = 45;
person1.FirstName = "John";
person1.LastName = "Doe";
this.myTextBox1.Person = person1;
this.myTextBox1.Size = new System.Drawing.Size(100, 20);
this.myTextBox1.TabIndex = 3;
Однако здесь есть одна загвоздка: если вы вносите изменения в конструктор, вам необходимо пересобрать проект и во многих случаях удалить элемент управления из формы и добавить его заново, чтобы VS мог заново создать код. Я предполагаю, что в вашем случае VS просто не догнал ваши изменения. Попробуйте удалить элемент управления из формы и перестроить его. Затем добавьте его снова, и оно должно работать.