private void LoadFigure(string path) { var DLL = Assembly.LoadFile(path); foreach (Type type in DLL.GetExportedTypes()) { if (!ImportedTypes.ContainsValue(type)) { ImportedTypes.Add(type.Name, type); Button b = new Button(); b.Text = type.Name; b.Width = 99; b.Height = 32; flowLayoutPanel1.Controls.Add(b); b.Click += new EventHandler(delegate(object sender, EventArgs e) { currentShape = delegate(int startPointX, int startPointY, int endPointX, int endPointY) { var instance = Activator.CreateInstance(ImportedTypes[b.Text], startPointX, startPointY, endPointX, endPointY); return((Figure)instance); }; }); } } }
private void buttonArrow_Click(object sender, EventArgs e) { currentShape = delegate(int startPointX, int startPointY, int endPointX, int endPointY) { return(new Shapes.Arrow(startPointX, startPointY, endPointX, endPointY)); }; }