Example #1
0
        public void UpdateControlColorsFonts_MenuItems(ToolStripMenuItem control, Color backColor, Color foreColor, Font font)
        {
            string type = control.GetType().ToString();

            if (type != "System.Windows.Forms.ToolStripSeparator")
            {
                control.BackColor = backColor;
                control.ForeColor = foreColor;
                control.Font      = font;

                foreach (ToolStripMenuItem item in control.DropDownItems)
                {
                    type = item.GetType().ToString();
                    if (type != "System.Windows.Forms.ToolStripSeparator")
                    {
                        item.BackColor = backColor;
                        item.ForeColor = foreColor;
                        item.Font      = font;
                        foreach (ToolStripMenuItem subitem in item.DropDownItems)
                        {
                            UpdateControlColorsFonts_MenuItems(subitem, backColor, foreColor, font);
                        }
                    }
                }
            }
        }
Example #2
0
        private bool UncheckAllMenuItemsExcept(ToolStripItemCollection items, ToolStripMenuItem exceptItem)
        {
            bool found = false;

            foreach (ToolStripItem item in items)
            {
                if (item.GetType() == exceptItem.GetType())
                {
                    ToolStripMenuItem itemTypeChecked = (ToolStripMenuItem)item;

                    if (itemTypeChecked != exceptItem)
                    {
                        itemTypeChecked.Checked = false;
                    }
                    else
                    {
                        found = true;
                    }

                    if (itemTypeChecked.DropDownItems.Count > 0)
                    {
                        if (this.UncheckAllMenuItemsExcept(itemTypeChecked.DropDownItems, exceptItem))
                        {
                            itemTypeChecked.CheckState = CheckState.Indeterminate;
                        }
                    }
                }
            }

            return(found);
        }
Example #3
0
        void FindMenuItem(ToolStripMenuItem menuItem)
        {
            menuItem.MouseEnter += FormEvents.MenuItem_MouseEnter;
            menuItem.MouseUp    += FormEvents.MouseUp;
            var item = new FormControl
            {
                Name         = menuItem.Name,
                ParentFormID = activeForm.GetID(),
                Type         = menuItem.GetType().ToString(),
                OriginalText = menuItem.Text
            };

            item.Insert();

            if (menuItem.HasDropDownItems)
            {
                foreach (var childItem in menuItem.DropDownItems)
                {
                    if (childItem is ToolStripMenuItem)
                    {
                        FindMenuItem(childItem as ToolStripMenuItem);
                    }
                }
            }
        }
Example #4
0
 private ToolStripMenuItem GetItem(ToolStripMenuItem item, string text)
 {
     if (item.Text == text && !item.HasDropDownItems)
     {
         return(item);
     }
     if (item.HasDropDownItems)
     {
         foreach (ToolStripItem temp in item.DropDownItems)
         {
             if (item.GetType() != typeof(ToolStripMenuItem))
             {
                 continue;
             }
             if (temp.Text == text && !((ToolStripMenuItem)temp).HasDropDownItems)
             {
                 return(temp as ToolStripMenuItem);
             }
             if (((ToolStripMenuItem)temp).HasDropDownItems)
             {
                 return(GetItem(temp as ToolStripMenuItem, text));
             }
         }
     }
     return(null);
 }
Example #5
0
        private bool PerformContextMenuClick(int menuID, ToolStripMenuItem item)
        {
            if (item == null)
            {
                return(false);
            }

            int id = 0; Type itemType = item.GetType();

            try
            {
                id = (int)itemType.InvokeMember("MenuID", BindingFlags.GetProperty | BindingFlags.NonPublic | BindingFlags.Instance, null, item, new object[] { });
            }
            catch { }

            if (menuID == id)
            {
                item.PerformClick();
                return(true);
            }

            // check for child menu items:
            foreach (ToolStripMenuItem menuItem in item.DropDownItems)
            {
                if (PerformContextMenuClick(menuID, menuItem))
                {
                    return(true);
                }
            }

            return(false);
        }
Example #6
0
        public static void RemoveClickEvent(ToolStripMenuItem b)
        {
            var f1 = typeof(Control).GetField("EventClick",
                                              BindingFlags.Static | BindingFlags.NonPublic);
            object obj = f1.GetValue(b);
            var    pi  = b.GetType().GetProperty("Events",
                                                 BindingFlags.NonPublic | BindingFlags.Instance);
            var list = (EventHandlerList)pi.GetValue(b, null);

            list.RemoveHandler(obj, list[obj]);
        }
 static void CallClickEvent(ToolStripMenuItem i)
 {
     i.GetType().GetMethod("OnClick",
                           System.Reflection.BindingFlags.Instance |
                           System.Reflection.BindingFlags.NonPublic).Invoke(i,
                                                                            new object
                                                                            []
     {
         new EventArgs
             ()
     });
 }
 /// <summary>
 /// Зарежда Name и Text на контролите от ToolStripItemCollection
 /// </summary>
 private void Load_ToolStripItems(TranslateItem aTItem, ToolStripItemCollection aTlStrpItms)
 {
     foreach (ToolStripItem tsi in aTlStrpItms)
     {
         if (tsi.GetType() == typeof(ToolStripMenuItem))
         {
             ToolStripMenuItem tsmi     = (ToolStripMenuItem)tsi;
             TranslateItem     NewTItem = aTItem.GetItem(tsmi.Name);
             if (NewTItem == null)
             {
                 _IsEditLngPack = true;
                 NewTItem       = aTItem.ItemAdd(tsmi.Name, tsmi.Text, tsmi.GetType());
             }
             //
             Load_ToolStripItems(NewTItem, tsmi.DropDownItems);
         }
     }
 }
Example #9
0
        private void tsmi_MouseDown(object sender, MouseEventArgs e)
        {
            //b.Info.Log(traceSbtControls, "MouseDown occurs for managed toolstrip item.");
            ToolStripMenuItem clickedItem = (ToolStripMenuItem)sender;

            if ((clickedItem.Image != null) && ((clickedItem.DisplayStyle == ToolStripItemDisplayStyle.Image) || (clickedItem.DisplayStyle == ToolStripItemDisplayStyle.ImageAndText)))
            {
                // b.Verbose.Log("Image processing is active, attempting to resolve click location");
                BindingFlags getPropertyFlags       = BindingFlags.GetProperty | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Public;
                PropertyInfo internalLayoutProperty = clickedItem.GetType().GetProperty("InternalLayout", getPropertyFlags);
                object       internalLayoutValue    = internalLayoutProperty.GetValue(clickedItem, null);
                PropertyInfo imageRectangleProperty = internalLayoutValue.GetType().GetProperty("ImageRectangle", getPropertyFlags);
                Rectangle    imageRectangle         = (Rectangle)imageRectangleProperty.GetValue(internalLayoutValue, null);

                IsImageClick        = imageRectangle.Contains(e.Location);
                NextCloseNotAllowed = IsImageClick && PreventClose;
                // b.Info.Log(traceSbtControls, "LeavingMouseDown IsImageClick=" + IsImageClick.ToString() + "  NextCloseNotAllowed=" + NextCloseNotAllowed.ToString());
            }
        }
        private static void PopulateMenuItemrecursive(ToolStripMenuItem ts, List <string> listmenuitem)
        {
            for (int i = 0; i < ts.DropDownItems.Count; i++)
            {
                if (ts.GetType() != typeof(ToolStripMenuItem))
                {
                    continue;
                }

                if (listmenuitem.Contains(ts.DropDownItems[i].Tag != null ? ts.DropDownItems[i].Tag : ts.DropDownItems[i].Text))
                {
                    ts.DropDownItems[i].Visible = true;
                }
                else
                {
                    ts.DropDownItems[i].Visible = false;
                }
                PopulateMenuItemrecursive((ToolStripMenuItem)ts.DropDownItems[i], listmenuitem);
            }
        }
Example #11
0
 private void всеПоля_CheckedChanged(object sender, EventArgs e)
 {
     if (flagToChange)
     {
         ToolStripMenuItem curItem = new ToolStripMenuItem();
         if (curItem.GetType() == sender.GetType())
         {
             curItem = (ToolStripMenuItem)sender;
             if (curItem.OwnerItem == id_dev)
             {
                 dev_checkAll.Checked = false;
             }
             if (curItem.OwnerItem == par)
             {
                 par_checkAll.Checked = false;
             }
         }
         draw();
     }
 }
Example #12
0
        private bool locateItem(ToolStripItem it, Dictionary <string, string> d, ref Rectangle rect, ref IntPtr h)
        {
            if (it is ToolStripMenuItem)
            {
                ToolStripMenuItem item = it as ToolStripMenuItem;

                if (d["FullName"] == item.GetType().FullName &&
                    d["Name"] == item.Name &&
                    d["Text"] == item.Text)
                {
                    rect = item.DropDown.Bounds;
                    h    = item.DropDown.Handle;
                    return(true);
                }

                foreach (ToolStripItem i in item.DropDownItems)
                {
                    if (locateItem(i, d, ref rect, ref h))
                    {
                        if (h == IntPtr.Zero)
                        {
                            h = item.DropDown.Handle;
                        }
                        return(true);
                    }
                }
            }
            else
            {
                if (d["FullName"] == it.GetType().FullName &&
                    d["Name"] == it.Name &&
                    d["Text"] == it.Text)
                {
                    rect = it.Bounds;
                    //h = item.DropDown.Handle;//handle由上级决定
                    return(true);
                }
            }
            return(false);
        }
        private void WireEvent(ToolStripMenuItem oToolStripMenuItem,
                               Form oForm,
                               string szEventName,
                               string szMethodName)
        {
            MethodInfo oMethodInfo;
            Delegate   oDelegate;
            EventInfo  oEventInfo = oToolStripMenuItem.GetType().GetEvent(szEventName);
            Type       oType      = oForm.GetType();

            oMethodInfo = oType.GetMethod(
                szMethodName,
                System.Reflection.BindingFlags.IgnoreCase |
                System.Reflection.BindingFlags.Instance |
                System.Reflection.BindingFlags.NonPublic);

            if (oMethodInfo != null)
            {
                oDelegate = Delegate.CreateDelegate(oEventInfo.EventHandlerType,
                                                    oForm, oMethodInfo.Name);

                oEventInfo.AddEventHandler(oToolStripMenuItem, oDelegate);
            }
        }
Example #14
0
        public static void SetSubControl(Control tb, string oldtitle, string newtitle)
        {
            switch (tb.GetType().ToString())
            {
            case "System.Windows.Forms.TextBox":
                ((TextBox)tb).ShortcutsEnabled = true;
                break;

            case "System.Windows.Forms.ComboBox":
                break;

            case "System.Windows.Forms.MenuStrip":
                MenuStrip ms = (MenuStrip)tb;
                for (int k = 0; k < ms.Items.Count; k++)
                {
                    ToolStripMenuItem menuitem = (ToolStripMenuItem)ms.Items[k];
                    if (menuitem.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                    {
                        menuitem.Text = newtitle;
                        break;
                    }
                    else
                    {
                        SetSubMenu((ToolStripMenuItem)ms.Items[k], oldtitle, newtitle);
                    }
                }
                break;

            case "LXMS.ToolStripEx":
            case "System.Windows.Forms.ToolStrip":
                ToolStrip ts = (ToolStrip)tb;
                for (int k = 0; k < ts.Items.Count; k++)
                {
                    ToolStripItem toolitem = (ToolStripItem)ts.Items[k];
                    if (toolitem.GetType().ToString() != "System.Windows.Forms.ToolStripSeparator")
                    {
                        if (toolitem.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                        {
                            toolitem.Text = newtitle;
                            break;
                        }
                        else if (toolitem.GetType().ToString() == "System.Windows.Forms.ToolStripDropDownButton")
                        {
                            ToolStripDropDownButton tsb = (ToolStripDropDownButton)toolitem;
                            for (int m = 0; m < tsb.DropDownItems.Count; m++)
                            {
                                if (tsb.DropDownItems[m].GetType().ToString() == "System.Windows.Forms.ToolStripControlHost")
                                {
                                    continue;
                                }
                                ToolStripDropDownItem tsbitem = (ToolStripDropDownItem)tsb.DropDownItems[m];
                                if (tsbitem.GetType().ToString() != "System.Windows.Forms.ToolStripSeparator")
                                {
                                    if (tsbitem.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                                    {
                                        tsbitem.Text = newtitle;
                                        break;
                                    }
                                }
                            }
                        }
                        else if (toolitem.GetType().ToString() == "System.Windows.Forms.ToolStripSplitButton")
                        {
                            ToolStripSplitButton tsb = (ToolStripSplitButton)toolitem;
                            for (int m = 0; m < tsb.DropDownItems.Count; m++)
                            {
                                ToolStripMenuItem tsbitem = (ToolStripMenuItem)tsb.DropDownItems[m];
                                if (tsbitem.GetType().ToString() != "System.Windows.Forms.ToolStripSeparator")
                                {
                                    if (tsbitem.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                                    {
                                        tsbitem.Text = newtitle;
                                        break;
                                    }
                                }
                            }
                        }
                    }
                }
                break;

            case "LXMS.TabControlEx":
            case "System.Windows.Forms.TabControl":
                TabControl tc = (TabControl)tb;
                foreach (TabPage tp in tc.Controls)
                {
                    if (tp.Text.ToLower() == oldtitle)
                    {
                        tp.Text = newtitle;
                        //break;
                    }
                    foreach (Control ct in tp.Controls)
                    {
                        SetSubControl(ct, oldtitle, newtitle);
                    }
                }
                break;

            case "System.Windows.Forms.SplitContainer":
                SplitContainer sc = (SplitContainer)tb;
                SetSubControl(sc.Panel1, oldtitle, newtitle);
                SetSubControl(sc.Panel2, oldtitle, newtitle);
                break;

            default:
                if (!string.IsNullOrEmpty(tb.Text) && tb.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                {
                    tb.Text = newtitle;
                }
                if (tb.Controls.Count > 0)
                {
                    foreach (Control ch in tb.Controls)
                    {
                        SetSubControl(ch, oldtitle, newtitle);
                    }
                }
                break;
            }

            System.Reflection.FieldInfo[] fieldInfo = tb.GetType().GetFields(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            for (int m = 0; m < fieldInfo.Length; m++)
            {
                switch (fieldInfo[m].FieldType.Name)
                {
                case "ContextMenuStrip":
                    ContextMenuStrip cms = (ContextMenuStrip)fieldInfo[m].GetValue(tb);
                    for (int k = 0; k < cms.Items.Count; k++)
                    {
                        if (cms.Items[k].GetType().ToString() == "System.Windows.Forms.ToolStripMenuItem")
                        {
                            ToolStripMenuItem menuitem = (ToolStripMenuItem)cms.Items[k];
                            if (menuitem.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                            {
                                menuitem.Text = newtitle;
                                break;
                            }
                            else
                            {
                                SetSubMenu((ToolStripMenuItem)cms.Items[k], oldtitle, newtitle);
                            }
                        }
                    }
                    break;

                default:
                    break;
                }
            }
        }
Example #15
0
        public static void InitLanguage(Form frm)
        {
            frm.BackColor = frmOptions.BACKCOLOR;
            if (Util.language == "0")
            {
                return;
            }

            _sb.Clear();
            frm.Text = TranslateString(frm.Text);
            string[] titles = Properties.Resources.Language.Replace("\n", "").Replace("\r", "").Split(';');
            if (titles != null)
            {
                for (int i = 0; i < titles.Length; i++)
                {
                    string[] title = titles[i].Split('-');
                    if (title.Length == 2)
                    {
                        string oldtitle, newtitle;
                        oldtitle = title[0].Replace("\r\n", "").ToLower();
                        newtitle = title[1].Replace("\r\n", "");
                        foreach (Control tb in frm.Controls)
                        {
                            switch (tb.GetType().ToString())
                            {
                            case "System.Windows.Forms.TextBox":
                                ((TextBox)tb).ShortcutsEnabled = true;
                                break;

                            case "System.Windows.Forms.ComboBox":
                                break;

                            case "System.Windows.Forms.MenuStrip":
                                MenuStrip ms = (MenuStrip)tb;
                                for (int k = 0; k < ms.Items.Count; k++)
                                {
                                    ToolStripMenuItem menuitem = (ToolStripMenuItem)ms.Items[k];
                                    if (menuitem.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                                    {
                                        menuitem.Text = newtitle;
                                        break;
                                    }
                                    else
                                    {
                                        SetSubMenu((ToolStripMenuItem)ms.Items[k], oldtitle, newtitle);
                                    }
                                }
                                break;

                            case "LXMS.ToolStripEx":
                            case "System.Windows.Forms.ToolStrip":
                                ToolStrip ts          = (ToolStrip)tb;
                                string    controltype = string.Empty;
                                for (int k = 0; k < ts.Items.Count; k++)
                                {
                                    ToolStripItem toolitem = (ToolStripItem)ts.Items[k];
                                    if (toolitem.GetType().ToString() != "System.Windows.Forms.ToolStripSeparator")
                                    {
                                        if (toolitem.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                                        {
                                            toolitem.Text = newtitle;
                                            break;
                                        }
                                        else if (toolitem.GetType().ToString() == "System.Windows.Forms.ToolStripDropDownButton")
                                        {
                                            ToolStripDropDownButton tsb = (ToolStripDropDownButton)toolitem;
                                            for (int m = 0; m < tsb.DropDownItems.Count; m++)
                                            {
                                                ToolStripDropDownItem tsbitem = (ToolStripDropDownItem)tsb.DropDownItems[m];
                                                if (tsbitem.GetType().ToString() != "System.Windows.Forms.ToolStripSeparator")
                                                {
                                                    if (tsbitem.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                                                    {
                                                        tsbitem.Text = newtitle;
                                                        break;
                                                    }
                                                }
                                            }
                                        }
                                        else if (toolitem.GetType().ToString() == "System.Windows.Forms.ToolStripSplitButton")
                                        {
                                            ToolStripSplitButton tsb = (ToolStripSplitButton)toolitem;
                                            for (int m = 0; m < tsb.DropDownItems.Count; m++)
                                            {
                                                if (tsb.DropDownItems[m].GetType().ToString() != "System.Windows.Forms.ToolStripSeparator")
                                                {
                                                    ToolStripMenuItem tsbitem = (ToolStripMenuItem)tsb.DropDownItems[m];
                                                    SetSubMenu((ToolStripMenuItem)tsbitem, oldtitle, newtitle);
                                                    if (tsbitem.GetType().ToString() != "System.Windows.Forms.ToolStripSeparator")
                                                    {
                                                        if (tsbitem.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                                                        {
                                                            tsbitem.Text = newtitle;
                                                            break;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                                break;

                            case "LXMS.TabControlEx":
                            case "System.Windows.Forms.TabControl":
                                TabControl tc = (TabControl)tb;
                                foreach (TabPage tp in tc.Controls)
                                {
                                    _sb.Append(tp.Text.ToString() + "-" + oldtitle + "\r\n");
                                    if (tp.Text.ToLower() == oldtitle)
                                    {
                                        tp.Text = newtitle;
                                        break;
                                    }
                                    foreach (Control ct in tp.Controls)
                                    {
                                        SetSubControl(ct, oldtitle, newtitle);
                                    }
                                }
                                break;

                            case "System.Windows.Forms.SplitContainer":
                                SplitContainer sc = (SplitContainer)tb;
                                SetSubControl(sc.Panel1, oldtitle, newtitle);
                                SetSubControl(sc.Panel2, oldtitle, newtitle);
                                break;

                            default:
                                SetSubControl(tb, oldtitle, newtitle);
                                break;
                            }
                        }
                        System.Reflection.FieldInfo[] fieldInfo = frm.GetType().GetFields(System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
                        for (int m = 0; m < fieldInfo.Length; m++)
                        {
                            switch (fieldInfo[m].FieldType.Name)
                            {
                            case "ContextMenuStrip":
                                ContextMenuStrip cms = (ContextMenuStrip)fieldInfo[m].GetValue(frm);
                                for (int k = 0; k < cms.Items.Count; k++)
                                {
                                    if (cms.Items[k].GetType().ToString() == "System.Windows.Forms.ToolStripMenuItem")
                                    {
                                        ToolStripMenuItem menuitem = (ToolStripMenuItem)cms.Items[k];
                                        if (menuitem.Text.Trim().ToLower().CompareTo(oldtitle) == 0)
                                        {
                                            menuitem.Text = newtitle;
                                            break;
                                        }
                                        else
                                        {
                                            SetSubMenu((ToolStripMenuItem)cms.Items[k], oldtitle, newtitle);
                                        }
                                    }
                                }
                                break;

                            default:
                                break;
                            }
                        }
                    }
                }
            }
            string retstr = _sb.ToString();
        }
Example #16
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);
        }