private void ParentForm_Shown(object sender, EventArgs e) { Application.DoEvents(); foreach (TemplateClass PluginInstance in PluginController.GetPlugins(PluginsDirectory)) { PluginListBox.Items.Add(string.Format("{0} ({1})", PluginInstance.Name, PluginInstance.Description)); Plugins.Add(PluginInstance.Name + "-" + PluginInstance.GetHashCode(), PluginInstance); PluginInstance.Initialize(); if (PluginInstance.MainControl != null) { PluginLayoutPanel.Controls.Add(PluginInstance.MainControl); } if (PluginInstance.MainForm != null) { PluginInstance.MainForm.ShowDialog(); } } }