NewObjectDefaults(List <ObjectProperty> list) { InitializeComponent(); _propertyList = list; for (int i = 0; i < list.Count; i++) { ObjectProperty p = list[i]; Label lbl = new Label(); lbl.Text = ValueProperty.SplitOnCaps(p.PropertyName); TextBox tBox = new TextBox(); tBox.AutoCompleteMode = AutoCompleteMode.SuggestAppend; tBox.AutoCompleteCustomSource.AddRange(p.ValueList); tBox.AutoCompleteSource = AutoCompleteSource.CustomSource; tBox.Tag = p.PropertyName; tBox.Width = 300; tBox.TabIndex = i; tBox.DataBindings.Add("Text", p, "PropertyValue", false, DataSourceUpdateMode.OnPropertyChanged); tableLayoutPanel1.Controls.Add(lbl, 0, i); tableLayoutPanel1.Controls.Add(tBox, 1, i); if (i == 0) { ActiveControl = tBox; } } }