/// <summary> /// Add sub menu item on recursive /// </summary> /// <param name="parent"></param> /// <param name="dt"></param> /// <remarks> /// Author: Le Tien Phat. /// Created date: 14/05/2011 /// </remarks> private void AddSub(MDMenuItem parent, DataTable dt) { DataRow[] rows = dt.Select(string.Format("MENU_PID = {0}", parent.ID), MENU_ZORDER); if (rows.Length > 0) { MDMenuItem item; string folder = clsSystemConfig.IconFolder; string iconName = null; Size size = new Size(14, 14); foreach (DataRow row in rows) { item = new MDMenuItem(); item.Font = parent.Font; item.OwnerDraw = true; item.Name = row[MENU_NAME].ToString(); iconName = row[ICON_NAME].ToString(); if (iconName.Length > 0) { string filename = folder + iconName; if (File.Exists(filename)) { try { Icon icon = new Icon(filename); item.Icon = icon; } catch (Exception ex) { log.Error(ex.Message, ex); } } } if (item.Name == clsConstants.MENU_SEPARATE) { item.OwnerDraw = false; item.Text = clsConstants.MINUS; parent.MenuItems.Add(item); } else if (item.Name == clsConstants.MAXIMIZED) { item.Text = clsResources.GetTitle(frmMainName + row[MENU_NAME].ToString()); parent.MenuItems.Add(item); item.Checked = clsFormManager.Maximized; item.Click += new EventHandler(MenuItem_OnClick); } else if (item.Name == clsConstants.SYSTEM_STYLE) { item.Text = clsResources.GetTitle(frmMainName + row[MENU_NAME].ToString()); parent.MenuItems.Add(item); item.Checked = clsStyleManager.SystemStyle; item.Click += new EventHandler(MenuItem_OnClick); } else { item.ID = int.Parse(row[FORM_ID].ToString()); string formName = row[FORM_NAME].ToString(); if (formName.Length > 0) item.FormName = AssemblyName + formName; else item.FormName = ""; item.Text = clsResources.GetTitle(frmMainName + row[MENU_NAME].ToString()); parent.MenuItems.Add(item); AddSub(item, dt); } } } else { parent.Click += new EventHandler(MenuItem_OnClick); } }
/// <summary> /// Build dynamic menu /// </summary> /// <param name="dt"></param> /// <returns></returns> /// <remarks> /// Author: Le Tien Phat. /// Created date: 14/05/2011 /// </remarks> private MainMenu BuildMenu(DataTable dt) { MainMenu mainMenu = new MainMenu(); DataRow[]rows; rows = dt.Select("MENU_PID = 0", MENU_ZORDER); MDMenuItem item; Font font = this.Font; foreach(DataRow row in rows) { item = new MDMenuItem(); item.ID = int.Parse(row[FORM_ID].ToString()); item.Name = row[MENU_NAME].ToString(); item.FormName = AssemblyName + row[FORM_NAME].ToString(); item.Text = clsResources.GetTitle(frmMainName + row[MENU_NAME].ToString()); item.Font = font; if(item.Name == clsConstants.MENU_WINDOWS) { item.MdiList = true; } mainMenu.MenuItems.Add(item); AddSub(item, dt); } return mainMenu; }
/// <summary> /// Init title column header for Main Menu. /// </summary> /// <param name="frm"></param> /// <param name="control"></param> /// <remarks> /// Author: PhatLT. FPTSS. /// Created date: 14/02/2011 /// </remarks> public static void InitTitle(Form frm, MDMenuItem item) { if(frm == null || item == null) return; if(item.Name == clsConstants.MENU_SEPARATE) item.Text = clsConstants.MINUS; else item.Text = clsResources.GetTitle(frm.Name + "." + item.Name); foreach(MDMenuItem sub in item.MenuItems) { InitTitle(frm, sub); } }