コード例 #1
0
        //--------------------------------------------------------------------------
        public ToolStripItem[] GetItemsForContextMenuStrip(IMenuItem menuItem, object sender, object objetCible)
        {
            List <ToolStripItem> listeItems = new List <ToolStripItem>();

            CActionMenuItem actionMenuItem = menuItem as CActionMenuItem;

            if (actionMenuItem != null)
            {
                ToolStripMenuItem newItem = new ToolStripMenuItem(actionMenuItem.Libelle);
                if (actionMenuItem.FormuleLibelle != null)
                {
                    CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetCible);

                    CResultAErreur result = actionMenuItem.FormuleLibelle.Eval(ctx);
                    if (result && result.Data != null)
                    {
                        newItem.Text = result.Data.ToString();
                    }
                }
                newItem.Tag = new CCoupleActionObjet(actionMenuItem.Action, objetCible);
                if (actionMenuItem.Action != null && actionMenuItem.Action is CActionSur2iLinkMenuDeroulant)
                {
                    CExecuteurActionSur2iLinkMenuDeroulant executeurActionMenu = new CExecuteurActionSur2iLinkMenuDeroulant();
                    CResultAErreur result = executeurActionMenu.ExecuteAction(
                        (CActionSur2iLinkMenuDeroulant)actionMenuItem.Action, sender, objetCible);
                    if (result)
                    {
                        newItem.DropDownItems.AddRange((ToolStripItem[])result.Data);
                    }
                }
                else
                {
                    newItem.Click += new EventHandler(ActionMenuItem_Click);
                }

                listeItems.Add(newItem);
            }

            return(listeItems.ToArray());
        }
コード例 #2
0
 //----------------------------------------------------------------------
 public static void Autoexec()
 {
     CExecuteurActionSur2iLinkMenuDeroulant.RegisterExecuteurSpécifique(
         typeof(CSeparateurMenuItem),
         new CExecuteurSpecifiqueMenuItemSeparateur());
 }
コード例 #3
0
 //--------------------------------------------------------------------------------------------------------------------------------------
 public static void Autoexec()
 {
     CExecuteurActionSur2iLinkMenuDeroulant.RegisterExecuteurSpécifique(
         typeof(CActionMenuItemListeDynamique),
         new CExecuteurMenuItemListDynamique());
 }