public FormObjectFields(Control control, FormMain formMain) { InitializeComponent(); Control = control; _formMain = formMain; _whatLocalAction = WhatLocalAction.Close; FormComposition = new FormComposition(Control); }
public void CreateFormFields(FormComposition form, object currObject) { const int LabelWidth = 100; const int LabelMarginLeft = 0; const int TextBoxAndComboBoxWidth = 140; const int TextBoxAndComboBoxMarginLeft = 100; const int MarginStep = 30; const int FormMarginTop = 70; int marginTop = 0; foreach (var property in currObject.GetType().GetProperties()) { string propertyName = GetFieldName(property); Type propertyType = property.PropertyType; form.Controls.Add(CreateLabel(propertyName, LabelWidth, LabelMarginLeft, marginTop)); if ((propertyType == typeof(string)) || (propertyType == typeof(int))) { TextBox textBox = CreateTextBox(propertyName, TextBoxAndComboBoxWidth, TextBoxAndComboBoxMarginLeft, marginTop); if (propertyType == typeof(string)) { textBox.Text = (string)property.GetValue(currObject) ?? ""; } else { textBox.Text = (int)property.GetValue(currObject) != 0 ? property.GetValue(currObject).ToString() : ""; } form.Controls.Add(textBox); } else if (propertyType.IsEnum) { ComboBox comboBox = CreateComboBox(propertyName, TextBoxAndComboBoxWidth, TextBoxAndComboBoxMarginLeft, marginTop); comboBox.Items.Add(""); foreach (var enumName in GetEnumNames(property.PropertyType)) { comboBox.Items.Add(enumName); } comboBox.SelectedIndex = (int)property.GetValue(currObject); form.Controls.Add(comboBox); } marginTop += MarginStep; } Button buttonOk = form.Controls["ButtonOk"] as Button; Button buttonCansel = form.Controls["ButtonCancel"] as Button; buttonOk.Location = new Point(buttonOk.Location.X, marginTop); buttonCansel.Location = new Point(buttonCansel.Location.X, marginTop); form.Height = marginTop + FormMarginTop; }