private string getShortcutText(ToolStripMenuItem mi)
        {
            var t= (string)mi.GetType().InvokeMember(
                @"GetShortcutText",
                BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance,
                null,
                mi,
                new object[] { });

            return t;
        }
        // http://stackoverflow.com/questions/1121441/c-sharp-addeventhandler-using-reflection
        private void addmenu(string name, IEnumerable<string> itemarray, object classobject)
        {
            var menu = new ToolStripMenuItem(name);

            bool merge = typeof (MainForm) != classobject.GetType();

            if (merge)
                menu.MergeAction = MergeAction.MatchOnly;

            foreach (string itemtext in itemarray)
            {
                if (itemtext == "Seperator")
                    menu.DropDownItems.Add(new ToolStripSeparator());
                else
                {
                    var item = new ToolStripMenuItem {Text = itemtext};
                    EventInfo eventinfo = item.GetType().GetEvent("Click");
                    // Zoek de string.Format("{0}_Click", itemtext.Replace(" ", "") methode van classobject
                    MethodInfo methodinfo =
                        classobject.GetType().GetMethod(string.Format("{0}_Click", itemtext.Replace(" ", "")));

                    if (methodinfo == null) // Als die niet bestaat.
                        item.Enabled = false;
                    else // Anders, voeg een EventHandler toe van het Click event naar die methode.
                        eventinfo.AddEventHandler(item,
                                                  Delegate.CreateDelegate(eventinfo.EventHandlerType, classobject,
                                                                          methodinfo));

                    if (merge)
                        item.MergeAction = MergeAction.Replace;

                    menu.DropDownItems.Add(item);
                    itemdictionary.Add(item.Text, item);
                }
            }

            Items.Add(menu);
        }