//--------------------------------------------------------------- void menuFormule_MouseDown(object sender, MouseEventArgs e) { CMenuNewFormule menu = sender as CMenuNewFormule; if (menu != null) { AddNewByDragDrop(menu.Formule); } }
//------------------------------------------------- public void AssureMenuAddFormule() { if (m_menuAddFormule.Items.Count != 0) { return; } Dictionary <string, ToolStripMenuItem> dicRubriques = new Dictionary <string, ToolStripMenuItem>(); foreach (IExpression expression in CAllocateur2iExpression.ToutesExpressions) { C2iExpressionAnalysable expAn = expression as C2iExpressionAnalysable; if (expAn != null) { CInfo2iExpression info = expAn.GetInfos(); if (info.Categorie.Length > 0 && info.Texte.Length > 0) { ToolStripMenuItem menuRubrique = null; if (!dicRubriques.TryGetValue(info.Categorie, out menuRubrique)) { menuRubrique = new ToolStripMenuItem(info.Categorie); dicRubriques[info.Categorie] = menuRubrique; } CMenuNewFormule menuFormule = new CMenuNewFormule(expAn); menuRubrique.DropDownItems.Add(menuFormule); menuFormule.MouseDown += new MouseEventHandler(menuFormule_MouseDown); } } } List <ToolStripMenuItem> lst = new List <ToolStripMenuItem>(dicRubriques.Values); lst.Sort((m1, m2) => m1.Text.CompareTo(m2.Text)); m_menuAddFormule.Items.AddRange(lst.ToArray()); foreach (ToolStripMenuItem item in lst) { List <ToolStripMenuItem> childs = new List <ToolStripMenuItem>(); foreach (ToolStripMenuItem c in item.DropDownItems) { childs.Add(c); } childs.Sort((m1, m2) => m1.Text.CompareTo(m2.Text)); item.DropDownItems.Clear(); item.DropDownItems.AddRange(childs.ToArray()); } }