private void InitializeChart(Control control) { Controls.Add(control); control.Dock = DockStyle.Fill; control.BringToFront(); //TODO: use menu builder and command pattern for menu instead of dirty EditChartMenus editChartMenus = new EditChartMenus(control as Chart2D, control as ComplexChart, (control as ElementHost)?.Child as Chart3DControl, control as ElementHost); menuStrip1.Items.AddRange(new ToolStripItem[] { editChartMenus.chartToolStripMenuItem }); SetMode(control.GetType()); }