private Control getControl(Column column) { Control c = null; switch (column.GenerateUIMetadata().EditorType) { case EditorTypes.Undefined: case EditorTypes.Hidden: break; case EditorTypes.TextEdit: c = new TextBox(); break; case EditorTypes.MemoEdit: case EditorTypes.HTMLEdit: c = new TextBox() { Multiline = true }; c.Height = 50; break; case EditorTypes.CheckBox: c = new CheckBox(); break; case EditorTypes.ComboBox: c = new ComboBox(); (c as ComboBox).Items.Add("One"); (c as ComboBox).Items.Add("Two"); (c as ComboBox).Items.Add("Three"); break; case EditorTypes.LookUp: c = new TextBox(); c.Text = "LookUp"; break; case EditorTypes.DateEdit: c = new DateTimePicker(); break; case EditorTypes.NumberEdit: c = new NumericUpDown(); break; case EditorTypes.TimeEdit: c = new TextBox(); c.Text = "TimeEdit"; break; case EditorTypes.TagEdit: c = new TextBox(); c.Text = "TagEdit"; break; default: break; } if (c == null) return null; Panel p = new Panel() { Width = 400, Height = c.Height+4}; Label l = new Label() { Width=160, TextAlign = ContentAlignment.MiddleRight, Text = column.GenerateUIMetadata().DisplayName}; c.Width = 240; c.Left = 160; p.Tag = c.Tag = column; p.Controls.Add(l); p.Controls.Add(c); p.MouseDown += p_Click; l.MouseDown += p_Click; c.MouseDown += p_Click; return p; }