Exemplo n.º 1
0
        public EventHandlerList DetachEvents(Component obj)
        {
            object       objNew     = obj.GetType().GetConstructor(new Type[] { }).Invoke(new object[] { });
            PropertyInfo propEvents = obj.GetType().GetProperty("Events", BindingFlags.NonPublic | BindingFlags.Instance);

            EventHandlerList eventHandlerList_obj    = (EventHandlerList)propEvents.GetValue(obj, null);
            EventHandlerList eventHandlerList_objNew = (EventHandlerList)propEvents.GetValue(objNew, null);

            eventHandlerList_objNew.AddHandlers(eventHandlerList_obj);
            eventHandlerList_obj.Dispose();

            return(eventHandlerList_objNew);
        }
Exemplo n.º 2
0
        public void AddHandlers_Gettable()
        {
            var list1 = new EventHandlerList();
            var list2 = new EventHandlerList();

            int    total = 0;
            Action a1    = () => total += 1;
            Action a2    = () => total += 2;

            // Add the delegates to separate keys in the first list
            list1.AddHandler("key1", a1);
            list1.AddHandler("key2", a2);

            // Then add the first list to the second
            list2.AddHandlers(list1);

            // And make sure they contain the same entries
            Assert.Same(list1["key1"], list2["key1"]);
            Assert.Same(list1["key2"], list2["key2"]);
        }
Exemplo n.º 3
0
        public static ToolStripMenuItem CloneToolStripMenuItem(ToolStripMenuItem itemToClone)
        {
            ToolStripMenuItem clonedItem = new ToolStripMenuItem();

            PropertyInfo itemToClonePropertyInfo = itemToClone.GetType().GetProperty("Events",
                                                                                     BindingFlags.NonPublic | BindingFlags.Instance);

            EventHandlerList itemToCloneEventHandlerList = (EventHandlerList)itemToClonePropertyInfo.GetValue(itemToClone, null);

            PropertyInfo clonedItemPropertyInfo = clonedItem.GetType().GetProperty("Events",
                                                                                   BindingFlags.NonPublic | BindingFlags.Instance);

            EventHandlerList clonedItemEventHandlerList = (EventHandlerList)clonedItemPropertyInfo.GetValue(clonedItem, null);

            clonedItemEventHandlerList.AddHandlers(itemToCloneEventHandlerList);

            clonedItem.AccessibleName        = itemToClone.AccessibleName;
            clonedItem.AccessibleRole        = itemToClone.AccessibleRole;
            clonedItem.Alignment             = itemToClone.Alignment;
            clonedItem.AllowDrop             = itemToClone.AllowDrop;
            clonedItem.Anchor                = itemToClone.Anchor;
            clonedItem.AutoSize              = itemToClone.AutoSize;
            clonedItem.AutoToolTip           = itemToClone.AutoToolTip;
            clonedItem.BackColor             = itemToClone.BackColor;
            clonedItem.BackgroundImage       = itemToClone.BackgroundImage;
            clonedItem.BackgroundImageLayout = itemToClone.BackgroundImageLayout;
            clonedItem.Checked               = itemToClone.Checked;
            clonedItem.CheckOnClick          = itemToClone.CheckOnClick;
            clonedItem.CheckState            = itemToClone.CheckState;
            clonedItem.DisplayStyle          = itemToClone.DisplayStyle;
            clonedItem.Dock = itemToClone.Dock;
            clonedItem.DoubleClickEnabled = itemToClone.DoubleClickEnabled;
            clonedItem.Enabled            = itemToClone.Enabled;
            clonedItem.Font                  = itemToClone.Font;
            clonedItem.ForeColor             = itemToClone.ForeColor;
            clonedItem.Image                 = itemToClone.Image;
            clonedItem.ImageAlign            = itemToClone.ImageAlign;
            clonedItem.ImageScaling          = itemToClone.ImageScaling;
            clonedItem.ImageTransparentColor = itemToClone.ImageTransparentColor;
            clonedItem.Margin                = itemToClone.Margin;
            clonedItem.MergeAction           = itemToClone.MergeAction;
            clonedItem.MergeIndex            = itemToClone.MergeIndex;
            clonedItem.Name                  = itemToClone.Name;
            clonedItem.Overflow              = itemToClone.Overflow;
            clonedItem.Padding               = itemToClone.Padding;
            clonedItem.RightToLeft           = itemToClone.RightToLeft;
            clonedItem.ShortcutKeys          = itemToClone.ShortcutKeys;
            clonedItem.ShowShortcutKeys      = itemToClone.ShowShortcutKeys;
            clonedItem.Tag               = itemToClone.Tag;
            clonedItem.Text              = itemToClone.Text;
            clonedItem.TextAlign         = itemToClone.TextAlign;
            clonedItem.TextDirection     = itemToClone.TextDirection;
            clonedItem.TextImageRelation = itemToClone.TextImageRelation;
            clonedItem.ToolTipText       = itemToClone.ToolTipText;
            clonedItem.Available         = itemToClone.Available;

            foreach (ToolStripMenuItem dropDownItem in itemToClone.DropDownItems)
            {
                clonedItem.DropDownItems.Add(CloneToolStripMenuItem(dropDownItem));
            }


            if (!itemToClone.AutoSize)
            {
                clonedItem.Size = itemToClone.Size;
            }

            return(clonedItem);
        }
        public void AddHandlers_NullList_ThrowsNullReferenceException()
        {
            var list = new EventHandlerList();

            Assert.Throws <NullReferenceException>(() => list.AddHandlers(null));
        }
Exemplo n.º 5
0
        public void AddHandlers_Gettable()
        {
            var list1 = new EventHandlerList();
            var list2 = new EventHandlerList();

            int total = 0;
            Action a1 = () => total += 1;
            Action a2 = () => total += 2;

            // Add the delegates to separate keys in the first list
            list1.AddHandler("key1", a1);
            list1.AddHandler("key2", a2);

            // Then add the first list to the second
            list2.AddHandlers(list1);

            // And make sure they contain the same entries
            Assert.Same(list1["key1"], list2["key1"]);
            Assert.Same(list1["key2"], list2["key2"]);
        }
Exemplo n.º 6
0
        public void AddHandlers_NullList_ThrowsArgumentNullException()
        {
            var list = new EventHandlerList();

            AssertExtensions.Throws <ArgumentNullException, NullReferenceException>(() => list.AddHandlers(null));
        }