public FormObjectFields(Control control, FormMain formMain)
 {
     InitializeComponent();
     Control          = control;
     _formMain        = formMain;
     _whatLocalAction = WhatLocalAction.Close;
     FormComposition  = new FormComposition(Control);
 }
Beispiel #2
0
        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;
        }