To allow properties modification during design time, you need to expose them in your user control as children remains private. If you need to expose some of the properties of the child control, you will need to do it one by one. Here is the simple example:
MyUserControl : UserControl {
public string TextBoxText { get { return TextBox.Text; } set { TextBox.Text = value; } }
public Color TextBoxBackColor { get { return TextBox.BackColor; } set { TextBox.BackColor = value; } }
public Color TextBoxForeColor { get { return TextBox.ForeColor; } set { TextBox.ForeColor = value; } }
private TextBox TextBox = new TextBox();
}
Everything will persist properly without any effort from you, just don't use
TypeConverter
.
—SA