using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace UI.Controls.TestContainer { public partial class TestContainer : Form { public TestContainer() { InitializeComponent(); var assembly = System.Reflection.Assembly.LoadFile( System.IO.Directory.GetCurrentDirectory() + "\\UI.Controls.dll"); foreach (Type type in assembly.GetTypes()) { if (typeof(UserControl).IsAssignableFrom(type)) { controlSelector.Items.Add(type); } } } private void controlSelector_SelectionChanged(object sender, EventArgs e) { UserControl control; try { testPanel.Controls.Clear(); Type type = (Type)controlSelector.SelectedItem; control = System.Activator.CreateInstance(type) as UserControl; control.Dock = DockStyle.Fill; testPanel.Controls.Add(control as Control); } catch (System.Exception exc) { if (exc.InnerException != null) { while (exc.InnerException != null) { exc = exc.InnerException; } System.Windows.Forms.MessageBox.Show( exc.Message + "\n" + exc.StackTrace, "Error constructing control"); } else { System.Windows.Forms.MessageBox.Show( exc.Message + "\n" + exc.StackTrace, "Error constructing control"); } } } } }