private void addtoolstripitem(string name, object classobject) { if (name == "Seperator") Items.Add(new ToolStripSeparator()); else { bool merge = typeof (MainForm) != classobject.GetType(); var toolstripbutton = new ToolStripButton(name) {Name = name}; EventInfo eventinfo = toolstripbutton.GetType().GetEvent("Click"); // Zoek de string.Format("{0}_Click", name.Replace(" ", "")) methode van classobject MethodInfo methodinfo = classobject.GetType().GetMethod(string.Format("{0}_Click", name.Replace(" ", ""))); if (methodinfo == null) // Als die niet bestaat. toolstripbutton.Enabled = false; else // Anders, voeg een EventHandler toe van het Click event naar die methode. eventinfo.AddEventHandler(toolstripbutton, Delegate.CreateDelegate(eventinfo.EventHandlerType, classobject, methodinfo)); if (merge) toolstripbutton.MergeAction = MergeAction.Replace; Items.Add(toolstripbutton); itemdictionary.Add(name, toolstripbutton); } }
static string GetToolStripButtonState(ToolStripButton button) { return button.GetType().ToString() + ":" + (button.Checked == true ? "yes" : "no"); }